Presentation is loading. Please wait.

Presentation is loading. Please wait.

Software Engineering CS 123/CS 231. Definition zSoftware Engineering is a discipline zIt focuses on the specification, development, management, and evolution.

Similar presentations


Presentation on theme: "Software Engineering CS 123/CS 231. Definition zSoftware Engineering is a discipline zIt focuses on the specification, development, management, and evolution."— Presentation transcript:

1 Software Engineering CS 123/CS 231

2 Definition zSoftware Engineering is a discipline zIt focuses on the specification, development, management, and evolution of software products zIt is concerned with concerned with associated methods, tools, and techniques zIt is the application of engineering principles to software

3 Software Engineering Phases zSpecification (analysis) zDesign zImplementation zTesting zMaintenance zManagement Considerations: Costing, Planning and Scheduling, Quality Assurance

4 Scope of CS 123/231 zOO Software design and implementation ÕOO Modeling (UML) ÕImplementation Considerations (Java, C++, Design Patterns) zSoftware engineering concepts ÕProcess Models ÕProject Management ÕTesting ÕStructured Design

5 Process Models zWaterfall Model zIncremental Model zSpiral Model zOthers Reference: Pressman, Chapter 2

6 Software Project Management CS 123/CS 231

7 References zChapter 3, Sommerville zChapter 2 & 7, Pressman

8 Management Activities zProposal Writing zProject Costing zPlanning and Scheduling * zMonitoring and Review * zPersonnel Selection and Evaluation zReports and Presentations *

9 Process Framework zS/W project typically divided into activities or tasks zMilestones describe progress at the end of an activity Õprogress report Õinternal or presented zDeliverables are often part of a milestone

10 Project Scheduling zScheduling involves: Õseparating total work into activities Õjudging total time required zConsiderations Õparallel activities Õproblem anticipation, regular sched updates Õresources other than time

11 Scheduling Notation zTask Duration and Dependencies Õtable or activity network zActivity Bar Chart Õschedule, parallel activities Õdepicts flexibility against schedule slippage zStaff Allocation Õtable or time chart

12 Risk Management CS 123/CS 231

13 Risk zSomething that can go wrong zCaused by inadequate information zResolved by initiating actions that Õdiscover the relevant information Õreduce uncertainty zBoehm’s Spiral Model Õexplicitly integrates risk assessment and reduction

14 Risk Categories zRequirements Risks zSkills Risks zTechnological Risks zOthers * Reference: UML Distilled, Chapter 2

15 Requirements Risks zDangers Õbuilding the wrong system Õmisunderstanding priorities zDealing with the risks Õimprove communication between analysts, developers, and clients Õenforce the discipline of using concrete, understandable models (e.g., use cases)

16 Technological Risks zDangers ÕUnexplored software tools or techniques ÕLack of alternatives zDealing with the risks Õobtain necessary resources Õbuild working prototypes Õtest integration capabilities (arch design) Õidentify alternatives

17 Skills Risks zDangers ÕNot enough personnel ÕNot enough expertise zDealing with the risks Õtraining / reading / mentoring Õdeliberate project scheduling


Download ppt "Software Engineering CS 123/CS 231. Definition zSoftware Engineering is a discipline zIt focuses on the specification, development, management, and evolution."

Similar presentations


Ads by Google