Connecting with Computer Science, 2e Chapter 13 Software EngineeringConnecting with Computer Science, 2e 2 Objectives • In this chapter you will: – Learn how software engineering is used to create applications – Learn some software engineering process models – Understand how a design document is used during software development – Review the steps for formulating a design documentConnecting with Computer Science, 2e 3 Objectives (cont’d.) • In this chapter you will (cont’d.): – Learn how Unified Modeling Language (UML) diagrams can be used as a blueprint for creating an application – See some pitfalls in developing software, and learn how to avoid them – Understand how teams are used in application developmentConnecting with Computer Science, 2e 4 Why You Need to Know About... Software Engineering • Defining a project involves the need to define the project’s scope before beginning – Must find out exactly what’s required before starting • Software engineering – Enables a student to design programs and communicate with clients and other team members • Essential elements of writing applicationsWhat Is Software Engineering? • Producing software applications – Requires source code and associated documentation • UML diagrams, screen prototypes, reports, software requirements, future development issues, and data needed to make programs operate correctly • End user – Driving force behind software development – Someone or something needing the program to perform a function or meet a need • Determines program’s required functionality – Piece of machinery or task to be accomplished Connecting with Computer Science, 2e 5What Is Software Engineering? (cont’d.) • Major part of software engineering: – Designing, writing, and producing software applications • Based on end users’ needs • End users’ needs might change over time – Need for application might even disappear • Makes application obsolete • Constant need to communicate with end users – Make software applicable to their needs Connecting with Computer Science, 2e 6Connecting with Computer Science, 2e 7 Software Development Life Cycle • Model describing application life – Including all stages in program development, testing, installation, and maintenance • SDLC elements – Project feasibility – Software specifications – Software design and implementation – Software validation – Software evolutionConnecting with Computer Science, 2e 8 Software Development Life Cycle (cont’d.) • Software development process models – Waterfall • Fundamental processes in creating the program represented as phases – Output from each phase used as input for next phase – Build and fix (evolutionary) • Developer writes a program and continues to modify it until functional – Rapid prototyping • Uses tools allowing end users to work with prototypes of program screens and other interfacesConnecting with Computer Science, 2e 9 Software Development Life Cycle (cont’d.) • Software development process models (cont’d.) – Incremental • Development with a series of software releases – Spiral • Cycles through the waterfall approach until all functionality is completed and delivered to end user – Agile • Tasks carried out in small increments with minimal planning • Two methods: scrum and extreme programming (XP)Connecting with Computer Science, 2e 10 Software Development Life Cycle (cont’d.) • Each model varies in the steps needed to complete the development tasks – This chapter focuses on the waterfall model • Widely used • Around since 1970 • Resembles process of building a houseSoftware Development Life Cycle (cont’d.) • Waterfall model steps – Gather all requirements – Design the system and software – Build and implement the application – Test after the application is finished – Put into operation • Software need not become obsolete – Modify to meet end users’ changing needs Connecting with Computer Science, 2e 11Connecting with Computer Science, 2e 12 Figure 13-1, The waterfall model of software development Software Development Life Cycle (cont’d.)Connecting with Computer Science, 2e 13 Creating the Design Document • Design document – Details all design issues for an application • Screen layouts, colors, reports, security, paths for files, online help, user documentation, future plans, and more • Advantages of software development environment application development tool: – Prototypes screens and reports without writing source code – Serves as a blueprint for the system – Process is based on good communication with end usersConnecting with Computer Science, 2e 14 Figure 13-2, The process of creating a design document Creating the Design Document (cont’d.)Connecting with Computer Science, 2e 15 Step 1: Learn the Current System and Needs • Initial task – Establish end user needs and goals • Ask client for samples of desired reports – Document information client provides – Come up with solutions or suggestions to address standard application factors • Security, colors, printing, etc. – Keep digging for information – Write project objectives or introduction, specifications, and requirementsConnecting with Computer Science, 2e 16 Figure 13-3, A design document includes objectives, specifications, and requirements Copy editor:!Switch w/ slide above and use “Creating the Design Document (cont’d.)” as header regardless of PDF placement?!Connecting with Computer Science, 2e 17 Step 2: Create UML Diagrams • Unified Modeling Language (UML) – Enables creation of diagrams (included in the blueprint) showing overall functionality of program • Provides client and developer communication – Visual modeling approach • Visual diagrams created before source code – Provides many types of diagrams • Explains different parts of a system – Tools can create UML diagrams • Microsoft VisioConnecting with Computer Science, 2e 18 Figure 13-4, Creating UML diagrams in Microsoft Visio Step 2: Create UML Diagrams (cont’d.)Connecting with Computer Science, 2e 19 Step 2: Create UML Diagrams
View Full Document