• No results found

Introduction and Overview

N/A
N/A
Protected

Academic year: 2021

Share "Introduction and Overview"

Copied!
24
0
0

Loading.... (view fulltext now)

Full text

(1)

Introduction and Overview

¾

Definitions.

¾

The general design process.

¾

A context for design: the waterfall model; reviews and documents.

¾

Some size factors.

¾

Quality and productivity factors.

_____

Material from: David Budgen (course text), and

Richard Fairley, Software Engineering Concepts, McGraw-Hill.

(2)

CS646: Software Design and Architectures

Definitions and descriptions

Software Engineering

“Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates.”

Software Design

“The fundamental problem is that designers are obliged to use current information to predict a future state that will not come about unless their predictions are correct. The final outcome of designing has to be

assumed before the means of achieving it can be explored: the designers

have to work backwards in time from an assumed effect upon the world

to the beginning of a chain of events that will bring the effect about.”

(3)

The general design process

conduct experiments

construct theory (model)

conduct experiments devise

experiments to test theory

derive

scientific principles

(scientific analysis)

initial

observations more systematic observations

predictions from theory

experimental observations

new predictions experimental

observations

(4)

CS646: Software Design and Architectures

The general design process (cont’d)

clarify nature of requirements

analyze needs and build black box model

of problem

validate solution

(including use of prototypes) postulate a white

box design solution

implementation of design plan using a suitable form of software

(design)

external

requirements requirements specification

functional specification

white box model

list of mismatches design plan

functional specification

(5)

Universal factors

¾ Concepts.

¾ Languages (one or two dimensional).

¾ Tools.

¾ Process (or methodology, recipe, algorithm).

E.g.:

1. Building a house.

2. Building a compiler.

(6)

CS646: Software Design and Architectures

A general model of design

design process

requirements specification

detailed design constraints:

resources, organizational,

experience, software reuse,

etc.

designer’s decisions

(7)

Separating architecture from detailed design

design process

requirements specification

constraints:

resources, organizational,

experience, software reuse,

etc.

designer’s decisions

detailed design architectural design

design process

(assignment one) (assignment two)

(8)

CS646: Software Design and Architectures

The waterfall life-cycle model

analysis phase design phase implementation phase system testing maintenance phase

Architectural Detailed

Coding

Unit testing

Integration Acceptance

Enhance Adapt Fix (verification)

(verification) (verification)

Planning

Requirements definition

PFR SCRs ATR PRR

PPM

SRR ADR DDR

(9)

Reviews and documents

PFR (product feasibility review) System Definition Project Plan

SRR (software requirements review) Software Requirements Specification preliminary Verification Plan

preliminary User’s Manual ADR (architectural design review) Architectural Design Document DDR (detailed design review) Detailed Design Document

Software Verification Plan User’s Manual

SCR (source code review) Walkthroughs and Inspections of the Source Code

ATR (acceptance test review) Acceptance Test Plan PRR (production release review) (all of the above)

PPM (project post-morten) Project Legacy

(10)

CS646: Software Design and Architectures

Contents of system definition

1. Problem definition.

2. System justification.

3. Goals for the system and the project.

4. Constraints on the system and the project.

5. Functions to be provided by hardware, software and people.

6. User characteristics.

7. Development, operating and maintenance environments.

8. Solution strategy.

9. Priorities for system features.

10. System acceptance criteria.

11. Sources of information.

12. Glossary of terms.

(11)

Contents of project plan

1. Life-cycle model (e.g., terminology, milestones and work products).

2. Organizational structure (i.e., management structure, team structure, work breakdown structure and statements of work).

3. Preliminary staffing and resource requirements, including staffing and resource schedule.

4. Preliminary development schedule (e.g., CPM graph and Gantt charts).

5. Preliminary cost estimate.

6. Project monitoring and control mechanisms.

7. Tools and techniques to be used.

8. Programming languages.

9. Testing requirements.

10. Supporting documents required.

(12)

CS646: Software Design and Architectures

Contents of project plan (cont’d)

11. Manner of demonstration and delivery.

12. Training schedule and materials.

13. Installation plan.

14. Maintenance considerations.

15. Method and time of delivery.

16. Method and time of payment.

17. Sources of information.

(13)

Contents of software requirements specification

1. Product overview and summary.

2. Development, operating and maintenance environments.

3. External interfaces and behavior (e.g., user display and report formats, user command summaries, high-level data flow diagrams, logical data sources and sinks, external data views and logical data dictionary) 4. Functional specifications.

5. Performance requirements.

6. Exception handling.

7. Early subsets and implementation priorities.

8. Foreseeable modifications and enhancements.

9. Acceptance criteria.

10. Design hints and guidelines.

11. Cross-reference index.

(14)

CS646: Software Design and Architectures

Contents of architectural design document

1. Data flow diagrams for the software product.

2. Conceptual specification of relevant data; specification of data sources.

3. Names, interface specifications and functional descriptions of subsystems and major modules.

4. Interconnection structure of the subsystems, major modules and data sources.

5. Timing constraints.

6. Exception conditions and handling.

(15)

Contents of detailed design document

1. Concrete internal design for relevant data.

2. Detailed algorithms.

3. Adaptations of existing code that will be reused.

4. Specific programming techniques required to solve unique problems.

5. Initialization procedures.

6. Detailed exception handling.

7. Task breakdown, including time estimates.

8. Integration test plan (e.g., test and schedule priority charts, CPM graphs and Gantt charts).

(16)

CS646: Software Design and Architectures

Contents of verification plan

1. Requirements to be verified.

2. Design verification plan.

3. Source-code test plan.

4. Test completion criteria.

5. Document verification plan.

6. Tools and techniques to be used.

(17)

Contents of user’s manual

1. Introduction (i.e., product overview and rational, terminology and basic features, summary of display and report formats and outline of the manual).

2. Getting started (e.g., sign-on, help mode, sample run).

3. Modes of operation; commands, dialogues and reports.

4. Advanced features.

5. Command syntax and system options.

(18)

CS646: Software Design and Architectures

Contents of acceptance test plan

1. Requirements to be verified.

2. Test cases for each requirement.

3. Expected outcome of each test case.

4. Capabilities demonstrated by each test.

(19)

Contents of project legacy

1. Project description.

2. Initial expectations.

3. Current status of the project.

4. Remaining areas of concern.

5. Activities/time log.

6. Technical lessons learned.

7. Managerial lessons learned.

8. Recommendations for future projects.

(20)

CS646: Software Design and Architectures

Relative effort

Analyze and Design

16%

Implement

8% Test

16%

Adapt 12%

Enhance

36% Fix

12%

Observations

¾

Development/Maintenance: 40/60

¾

A&D/Code&UT/Int&Acc: 40/20/40

¾

Adapt/Enhance/Fix: 20/60/20

(development)

(maintenance)

(21)

Software size categories

Product size (LOC)

Duration Number of

programmers Category

>1M 5–10 years

2000–5000 Extremely large

1M 4–5 years

100–1000 Very large

50K–100K 2–3 years

5–20 Large

5K–50K 1–2 years

2–5 Medium

1K–2K 1–6 months

1 Small

500 1–4 weeks

1 Trivial

(22)

CS646: Software Design and Architectures

How programmers spend their time

__________

Bell Labs Study (1964, 70 programmers)

¾

Writing programs: 13%

¾

Reading programs and manuals: 16%

¾

Job communication: 32%

¾

Personal: 13%

¾

Miscellaneous: 15%

¾

Training: 6%

¾

Mail: 5%

(23)

Quality and productivity factors

¾

Individual ability.

¾

Team communication.

¾

Product complexity.

¾

Choice of languages and notations.

¾

Systematic approaches.

¾

Stability of requirements.

¾

Level of reliability.

¾

Problem understanding.

¾

Required skills.

¾

Facilities and resources.

¾

Required training.

¾

Management skills.

¾

Available time.

¾

Product size.

(24)

CS646: Software Design and Architectures

Some quality attributes

¾

Portability.

¾

Reliability.

¾

Correctness.

¾

Efficiency.

¾

Testability.

¾

Understandability.

¾

Modifiability.

¾

Accuracy.

¾

Ease of use.

¾

Accountability.

¾

Completeness.

¾

Robustness.

References

Related documents

Slightly over half of offices in the local administration sector provide their employees with remote access to the electronic mail system and to the documents and

in the agent’s sensorimotor relationship with the world [8], so changes to the world or the agent’s embodiment are reflected in potentially new behaviour. A curious mouse and a

We knew that you wouldn't be satisfied with the basic system, especially since it essentially says, ,,Go get an XDM and let him do all the work.', So here you are with

A brief description of another sustainability publication or outreach material not covered above (1st material): University Communications & Marketing has a reporter assigned to

secara tepat waktu, memadai, jelas, akurat dan dapat diperbandingkan serta mudah diakses oleh stakeholders sesuai dengan hakny, Informasi yang harus

One possible approach, found in the Obama campaign plan, would be to establish a purchasing exchange at the federal level. Ensuring that health insurance is uniformly available

The distinctive features of grounded theory are that theory will be generated from the data gathered, a constant comparative method of data analysis will be used and the

Skills: Dodge, Fast Talk, Hide, Listen, Research, Spot, Stealth, and three of the following: Art (Photography), Brawl, Disguise, Etiquette, Firearm (any), Grapple,