Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering Process. Outline [Chapter 2 of UPEDU text plus slides] Understanding the Development and Evolution of Software Defining the Software.

Similar presentations


Presentation on theme: "Software Engineering Process. Outline [Chapter 2 of UPEDU text plus slides] Understanding the Development and Evolution of Software Defining the Software."— Presentation transcript:

1 Software Engineering Process

2 Outline [Chapter 2 of UPEDU text plus slides] Understanding the Development and Evolution of Software Defining the Software Life cycle and the Software Process Defining Elements of the Software Process Integrating the Software Life Cycle and the Software Process Customizing the Software Process Summary

3 Learning Goals Distinguish among development processes –Benefits and disadvantages Understand USDP / RUP Define software “ quality ” quantitatively –Must be measurable, plan for collection Understand documentation needed –Plan for iterative update with each cycle Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

4 Introduction to the Software Engineering process

5 Stand-alone –residing on a single computer –not connected to other software or hardware –e.g., word processor Embedded –part of unique application involving hardware –e.g., automobile controller Real-time –functions must execute within small time limit typically microseconds –e.g., radar software Network (Web) Centric –consist of parts interacting across a network –e.g., Web-based video game Some Application Types Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

6 Structured Programming (Function Oriented) Function definition handleAccount(…) getDetailsFromUser(…) getAccount(…) doTransaction(…) …… Function definition getDetailsFromUser (…) getName(…) …... Function definition getAccount(…) getFirstName(…) …... TOP DOWN Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

7 Object Orientation Real world concepts Software design entities Skljkvjkvjfkavjafkk saovjsdvjfvkfjvkfjk Skljkvjkvjfkavjafkk saovjsdvjfvkfjvkfjk Skljkvjkvjfkavjafkk saovjsdvjfvkfjvkfjk Skljkvjkvjfkavjafkk saovjsdvjfvkfjvkfjk Account getDetails() Transaction execute() Customer getFirstName() Direct correspondence Graphics reproduced with permission from Corel. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

8 Advantages of OO Simplicity: software objects model real world objects Modularity: data abstraction mean components are decoupled Modifiability: component changes that respect the public interface do not affect the system Extensibility: easy to add new objects or extend functionality of existing ones through inheritance Maintainability: can be maintained separately and on different computers Re-usability: objects can be reused in different programs and across a network

9 Components and Reuse account getName() setName() Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. Common Object Model Idea (Java Bean or MS COM object) Meant to revolutionize software development Promotes reusable code, design, architectures Based on defined public interfaces Internal attributes and functions are abstracted (hidden) from external access Can be written in different langauges Reside on different platforms Interface Methods

10 Distributed / Network Centric Systems (n-tiered architecture) Internet Browser Customer Desktop webserve.acadiau.ca Apache HTTP Server Tomcat App. Server DB.html,.cgi,.class,.jsp Admin Browser Admin Desktop Admin port 80 port 8080 DBserve.acadiau.ca Postgre SQL DBMS Server Admin

11 Expectations for SE process, project, product and people

12 Five Key Expectations (Humphrey) Influenced by people Used for process development Part of the project Aspect of the product 3. Keep all work visible 5. Measure quality 4. A. Design only against requirements B. Program only against designs C. Test only against requirements and designs 1. Predetermine quantitative quality goals 2. Accumulate data for subsequent use

13 Process alternatives

14 The Project Roadmap 1. Understand nature & scope of proposed product 2. Select the development process, and create a plan 4. Design the product 7. Deliver and maintain the product 3. Gather requirements 6. Test the product Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. 5. Build/Implement the product V arious Approaches

15 The Waterfall Model Requirements analysis Design Implementation Integration Produces … specification (text)... diagrams & text... code & comments... entire code Test... test report, including defect descriptions Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

16 complete targeted requirements Step n: Analyze requirements Step n+3: Test Step n+2: Implement Step n+1: Design Product:class models + Product: requirements specifications Product: code +Product: test results + Spiral Development Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

17 Iteration No. Incremental Development Analyze requirements Test whole Implement Design Test units Integrate Update SRS 3 Update SDD 2 Update source code Update Test documentation Update SPMP 1 1 Software Project Mangement Plan (chapter 2); 2 Software Design Document (chapter 5); 3 Software Requirements Specification (chapter 3); Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

18 USDP / RUP Methods USDP – Unified Software Development Process –An iterative and incremental development process. Time-boxed iterations are grouped in to phases. Each iteration results in an increment, which is a release of the system that contains added or improved functionality compared with the previous release. –http://en.wikipedia.org/wiki/Unified_Processhttp://en.wikipedia.org/wiki/Unified_Process RUP – Rational Unified Proces s –Defines nine disciplines: –Engineering disciplines - Business Modeling, Requirements, Analysis and Design, Implementation, Test, Deployment; –Supporting disciplines - Configuration and Change Management, Project Management, and Environment. –Four development life-cycle phases … –http://en.wikipedia.org/wiki/Rational_Unified_Processhttp://en.wikipedia.org/wiki/Rational_Unified_Process

19 USDP/RUP: Four Phases of Software Life Cycle Inception iterations –preliminary interaction with stakeholders (customer, users, owners, financial backers) –Define objectives/requirements Elaboration iterations –finalization of what is wanted and needed –Define architecture Construction iterations –focus moves to detailed design, implementation and testing –Complete version of operational system Transition iterations –Complete documentation –Release product Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

20 ElaborationInceptionConstructionTransition Requirements Analysis Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 Iter. #k ….. ….. Prelim. iterations USDP/RUP vs. Standard Terminology (Booch, Jacobson & Rumbaugh) Design Implemen- tation Test Discipline of s/w process (Classically called “ phases ” ) Phase of s/w life cycle Individual iteration

21 Requirements Analysis USDP/RUP vs. Standard Terminology Design Implementation Test Requirements analysis Implementation RUP Terminology Classical Terminology Integration Design Test Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission. Where basic classes are selected and related Integration is continual

22 Elaboration RUP Matrix InceptionConstructionTransition Requirements Analysis Jacobson et al: USDP Prelim. iterations Iter. #1 Iter. #n Iter. #n+1 Iter. #m Iter. #m+1 Iter. #k ….. Design Implemen- tation Test.. Amount of effort expended on the requirements phase during the first Construction iteration Overview Presentation Sys. Demo.

23 Advantages of RUP/UPEDU Focus on important risks / disciplines of each iteration Detail plan only for current iteration Coarse planning for next iterations Allows incremental buildup of system Reduces risks by identifying major issues early Iterations allows people time to learn to work more efficiently / effectively

24 Waterfall versus Iterative (USDP and RUP) Process Trade-offs FactorWaterfallIterative Ease of Doc.EasierHarder Customer Interaction HarderEasier Prob. of good design MediumEasier (Spiral) Harder (Increm.) Leverage proj. data HarderMedium/ Easier Project Management EasierMedium

25 Influencial Factors in Customizing a S/W/ Process Application domain factors People and organizational factors Product life-cycle factors Process factors (see page 42 of UPEDU)

26 Identify the Process You Will Use 1. Decide which of waterfall, spiral, and incremental processes is appropriate Usually a spiral for a semester project Combine: start with spiral, end with incremental 2. Decide how many iterations Usually two for a semester project (there are many artifacts to coordinate at the end of each iteration) Three provides lots of practice -- but this is a challenge; make the first increment as minor as possible Three promotes the collection and use of metric data -- use metric data collected from each iteration on next. 3. Rough out a weekly schedule Coordinate with course assignments. Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

27 5. Documentation

28 IEEE Project Documentation SRS software requirements specifications STD software test documention SCMP software configuration management plan SDD software design document SPMP software project management plan Source Code Project status Configuration Testing Requirements Design Code User ’ s manual Operation SQAP software quality assurance plan Quality assurance SVVP software validation & verification plan Verification & validation Customer- oriented Developer- oriented Architecture Detailed design Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

29 Comp3663 Project Documentation SRS software requirements specifications STD software test documention SCMP software configuration management plan SDD software design document SPMP software project management plan Source Code Detailed Design & Test Plan User ’ s manual User Manual SQAP software quality assurance plan SVVP software validation & verification plan Requirements Specification & Management Plan Customer- oriented Developer- oriented Architecture Detailed design Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

30 Example of Hyperlinked Documentation Set SRS software requirements specifications STP software test plan SCMP software configuration management plan SDD software design document SPMP software project management plan Source Code References to all other documents Project status* Configuration* Test results* Direction of hyperlink * Dynamic component Updates* Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.

31 6. Quality

32 Verification: are we building the thing right? Validation: are we building the right thing? Meaning of “ V&V ” (Boehm) Graphics reproduced with permission from Corel.

33 Produce a Quality Product 1. Quantify your quality goals team: # defective requirements, # classes missing from design, # defects in testing, # defects found in operation, # defects per KLOC (1000 lines of code) personal: # defects; code, compile, unit test separately 2. Build inspections and reviews into the schedule –follow the inspection procedure (see figure 1.27) 3. Document your quality goals and procedures –use a documentation standard to avoid missing issues –SQAP and SVVP (see case study for example Adapted from Software Engineering: An Object-Oriented Perspective by Eric J. Braude (Wiley 2001), with permission.


Download ppt "Software Engineering Process. Outline [Chapter 2 of UPEDU text plus slides] Understanding the Development and Evolution of Software Defining the Software."

Similar presentations


Ads by Google