Attributes of Software Design Key Features of Design Software Project Management Computer Science Software Engineering - 1626430912924
Attributes of Software Design Key Features of Design Software Project Management Computer Science Software Engineering - 1626430912924
C o n t act Us
<< The Software Requirements Specification
|
Arts
Software Configuration Management Vs Software Maintenance >>
B u s i ness
C o m p uter Science
Ear t h Sciences
LECTURE # 16 Table of Contents:
Engi n eering
Engl i sh
2. Software Development Fundamentals 1. Introduction & Fundamentals
Form a l Sciences
Technical Fundamentals
H e a l t h Scie nces
2. Goals of Project management
M a n a gement 3. Project Dimensions, Software
M a r keting 2.12 Design 4. Cost Management, Project vs.
M a s s Comm
5. Project Management�s nine
N a t u ral Sciences ⇒ Management Aspect
. Team leader, Project Organiza
Po l i t i cal Sc ience
Soci a l Sciences
Major design styles 7. Project Execution Fundamenta
� Object, structured, data-structured design
| . Organizational Issues and Pro
Site M ap
Foundational design concepts 9. Managing Processes: Project
Link s � Information hiding, abstraction, encapsulation, Inheritance, basic 10. Project Execution: Product Imp
algorithms & data structures, ...
11. Problems in Software Projects
⇒ Attributes of SW Design 12. Product-related Problems, Tec
13. Requirements Management, R
Software design is actually a multi step process that focuses on four
distinct attributes of a program: 14. Requirements Elicitation for So
15. The Software Requirements S
Data structure,
Software architecture,
1 . Attributes of Software Design,
Interface representations, and procedural (algorithmic) detail. 17. Software Configuration Manag
1 . Quality Assurance Manageme
The design process translates requirements into a representation of the
software that can be assessed for quality before coding begins. 19. Software Quality Assurance Ac
20. Software Process, PM Process
Like requirements, the design is documented and becomes part of the
software configuration.
21. Initiating Process: Inputs, Outp
22. Planning Process Tasks, Exec
Design is the technical kernel of software engineering. During design,
23. Project Planning Objectives, P
progressive refinements of data structure, architecture, interfaces, and
procedural detail of software components are developed, reviewed, and 24. Tools and Techniques for SDP,
documented. 25. PLANNING: Elements of SDP
Design results in representations of software that can be assessed for
2 . Life cycle Models: Spiral Mode
quality. A number of fundamental software design principles and concepts 27. Organizational Systems
have been proposed over the past four decades.
2 . ORGANIZATIONAL PLANNING
Design principles guide the software engineer as the design process 29. Estimation - Concepts
proceeds. Design concepts provide basic criteria for design quality. 30. Decomposition Techniques, Es
31. Estimation � Tools
107
32. Work Breakdown Structure
33. WBS- A Mandatory Manageme
34. Characteristics of a High-Qual
35. Work Breakdown Structure (W
3 . WBS- Major Steps, WBS Imple
37. Schedule: Scheduling Fundam
Software Project Management (CS615) 3 . Scheduling Tools: GANTT CHA
39. Risk and Change Managemen
a. Code generation 40. Risk & Change Management C
41. Risk Management Process
The design must be translated into a machine-readable form. The
code generation step performs this task. If design is performed in a 42. Quality Concept, Producing qu
detailed manner, code generation can be accomplished 43. Managing Tasks in Microsoft
mechanistically.
44. Commissioning & Migration
b. Testing
Once code has been generated, program testing begins. The testing
process focuses on the logical internals of the software, ensuring
that all statements have been tested and on the functional externals;
that is, conducting tests to uncover errors and ensure that defined
input will produce actual results that agree with required results.
Support
Modularity
Modularity (in both program and data) and the concept of abstraction
enable the designer to simplify and reuse software components.
Refinement provides a mechanism for representing successive layers of
functional detail. Program and data structure contribute to an overall view
of software architecture, while procedure provides the detail necessary for
algorithm implementation.
108
The moral is this: Don't rush through it! Design is worth the effort.
� Exception handling,
� Localization
� Portability
� Reuse
� Input/output
� Memory management,
� Performance
2.13 Construction
Coding practices
Naming, layout, documentation
Data-related concepts
Scope, persistence, binding time
109
� To ensure that project stays consistent over time: You need to:
1. Identifying Objects
2. Controlling Versions
3. Controlling Changes
4. Auditing
5. Communicating Changes
1. Identifying Objects
You can use the Item Traceability Matrix to identify SCIs at the end of
each phase. A sample of Item Traceability Matrix is displayed in Table
1. In the table, you can see the different SCIs in different phases of the
development process.
110
2. Controlling Versions
111