Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.

Similar presentations


Presentation on theme: "Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software."— Presentation transcript:

1 Cmpe 589 Spring 2006 Lecture 2

2 Software Engineering Definition –A strategy for producing high quality software.

3 Software Engineering Definition Of High Quality Software: –It must be useful (to the original customer). –It must be portable (work at all of the customer’s sites). –It must be maintainable. –It must be reliable. –It must have integrity (produces correct results, with a high degree of accuracy). –It must be efficient. –It must have consistency of function (it does what the user would, reasonably expect it to do). –It must be accessible (to the user). –It must have good human engineering (easy to learn and easy to use).

4 Software Development Models Systems Approach: {Definition of a system: (a collection of things) –A set of entities. –A set of activities. –Descriptions of entity relationships. –System boundaries.} –Distinguish between activities (processes, methods) and objects (data). –Determine the relationships between the objects.

5 Software Development Models Advantages Of Bounded Systems: –Makes problem identification easier. (It is often useful to think of a system as a sub-system, for the purpose of extension).

6 Software Development Models Software Engineering Approach: –The art of producing systems involves the craft of programming. –Fabricating software using "off the shelf" components. Why Doesn’t This Work Well: –Customers are not capable of describing their needs completely or precisely. –Customers change the specifications.

7 Software Lifecycle Models Phases: –Requirements, analysis, and design phase. –System design phase. –Program design phase. –Program implementation phase. –Unit testing phase. –Integration testing phase. –System testing phase. –System delivery phase. –System delivery. –Maintenance.

8 Software Lifecycle Models Waterfall Model: –Errors require at least one step back in the cycle. –Change » Failure.

9 Software Lifecycle Models Rapid Prototyping Model: –Start with user interface (probably most important to customer). –When customer is happy with that, then work on the behind the scenes stuff. –Customer is involved throughout the entire process.

10 Software Lifecycle Models Spiral Model: –Prototyping is used to reduce risk.

11 Software Lifecycle Models Fourth Generation Techniques: (Usually a tool that generates the code, through the use of a graphical interface). –Non-procedural data-base query languages. –Some type of report generator. –Often capable of high-level graphics. –Spreadsheets.

12 Capability Maturity Model: (A Strategy For Improving The Software Process). Maturity Models: Level One; Initial Process: –Ad-hoc approach to software design. –Inputs are ill defined. –Outputs are expected (transitions not defined or controllable).

13 Capability Maturity Model: Level Two; Repeatable Process: –Requirements are input. –Code output. –Constraints - budget & time. –Metrics - project related: Software size. Personnel effort. Requirement validity. Employee turnover.

14 Capability Maturity Model: Level Three; Defined Process: –The activities of the process have clearly defined entry & exit conditions. –Intermediate products - well defined and easily visible. –Metrics: Requirements complexity. Code complexity. Failures discovered. Code defects discovered. Product defect density. Pages of documentation.

15 Capability Maturity Model: Level Four; Managed Process: –Information from early process activities can be used to schedule later process activities. –Metrics: Defined and analyzed to suit the development organization. Data: Process type. Producer reuse. Consumer reuse. Defect identification mechanism. Defect density - model for testing. Configuration management scheme. Module completion; rates over time.

16 Capability Maturity Model: Level Five; Optimizing Processes: –Measures from activities are used to improve processes.

17 Capability Maturity Model: How Are Metrics Used? –Assess the process level. –Determine metrics to use. –Recommend metrics, tools, techniques. –Estimate project costs and schedule. –Collect metrics at the appropriate level. –Construct a project database. –Evaluate cost and schedule. –Evaluate productivity and quality. –Form a basis for future estimates.

18 Capability Maturity Model: Benefits Of Process Maturity And Metrics: –Enhanced understanding of the process. –Increased control over the process. –Clear migration path to a more mature process. –More accurate estimates of cost and scheduling of staff. –More objective evaluation of changes needed (techniques, tools, methods, ect.). –More accurate estimation of changes on project cost and schedule.


Download ppt "Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software."

Similar presentations


Ads by Google