Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
74 views

Attributes of Software Design Key Features of Design Software Project Management Computer Science Software Engineering - 1626430912924

This document discusses software project management and focuses on the design aspect of software development. It states that software design is a multi-step process that focuses on four attributes: data structure, software architecture, interface representations, and procedural detail. The design process translates requirements into a representation of the software that can be assessed for quality before coding begins. Major design styles include object-oriented, structured, and data-structured design. Foundational concepts of software design are also discussed.

Uploaded by

Asheber
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
74 views

Attributes of Software Design Key Features of Design Software Project Management Computer Science Software Engineering - 1626430912924

This document discusses software project management and focuses on the design aspect of software development. It states that software design is a multi-step process that focuses on four attributes: data structure, software architecture, interface representations, and procedural detail. The design process translates requirements into a representation of the software that can be assessed for quality before coding begins. Major design styles include object-oriented, structured, and data-structured design. Foundational concepts of software design are also discussed.

Uploaded by

Asheber
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

 

Software Project Management


Search
Home
Attributes
Attributes of
of Software
Software Design,
Design, Key
Key Features
Features of
of Design
Design
Libra r y

C o n t act Us
<< The Software Requirements Specification
|

Arts
Software Configuration Management Vs Software Maintenance >>
B u s i ness

C e r t i f icatio ns Software Project Management (CS615)


C o m m erce

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.

⇒ Key Features of Design

A number of fundamental software design principles and concepts have


been proposed over the past four decades. Design principles guide the
software engineer as the design process proceeds. Design concepts provide
basic criteria for design quality.
Support

Support

Software will undoubtedly undergo change after it is delivered to the


customer (a possible exception is embedded software). Change will occur
because errors have been encountered, because the software must be
adapted to accommodate changes in its external environment (e.g. a
change required because of a new operating system or peripheral device),
or because the customer requires functional or performance enhancements.

Software support/maintenance reapplies each of the preceding phases to


an existing program rather than a new one.

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

Software Project Management (CS615)

Information hiding and functional independence provide heuristics for


achieving effective modularity.
We try to solve the problem by rushing through the design process so that
enough time will be left at the end of the project to uncover errors that
were made because we rushed through the design process.

The moral is this: Don't rush through it! Design is worth the effort.

⇒ Standard design approaches

� 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

Data usage guidelines


Bytes, arrays

Use of construction tools


Programming environment, group work support (documents, code),
code libraries & generators

2.14 Software Configuration management

Software configuration management (SCM) takes care of changes in a


software  process.  SCM  identifies  controls,  audits,  and  reports
modifications that occur during software development. SCM helps
maintain the integrity of configurable items produced during software
development. SCM is an integral part of Software Quality Assurance
(SQA). SCM involves assessing the impact of the changes made during
SQA activities and making decisions based on cost and benefit analysis.

SCM is used to establish and maintain integrity of software items and


ensure that they can be traced easily. SCM helps define a library structure
for storage and retrieval of software items.

109

Software Project Management (CS615)

� To ensure that project stays consistent over time: You need to:

a) Evaluate proposed changes


b) Track the changes
c) Control the Version
d) Check integrity of Source code, documents, plans, design
e) Ensure quality

⇒ Software Configuration Management Activities

SCM is used to establish and maintain integrity of software items and


ensure that they can be traced easily. Using SCM, you can define a library
structure for storage and retrieval of software items. SCM needs to be
performed at all phases in the SDLC of a software project. The various
SCM activities are:

1. Identifying Objects
2. Controlling Versions
3. Controlling Changes
4. Auditing
5. Communicating Changes

1. Identifying Objects

The first activity in SCM involves identifying software configurable


items (SCIs). SCI is an aggregation of software that is designated for
configuration management. It is treated as a single entity in the
configuration management process. For example, design documents,
program code, test case, and custom requirement document are
configurable items.

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

Software Project Management (CS615)

Table 1: Item Traceability Matrix


Phase
Deliverable
Requirement
Name Design Construction Testing
Analysis
Requirement
Requirement
Analysis
Analysis Document
Document
Functional
Specification
Design Document and
Document Program
Specification
Document
Code A
Code Code B
Code C
Unit Test
Cases
Test Document
System Test
Cases
Database
Database Design
Design
Specification
Document

To identify SCls, you need to first breakdown the project deliverable


to the SCI level. Each phase in the project has its own deliverables. To
trace the deliverables, you need to map the SCls to the phases in which
they are delivered.

2. Controlling Versions

Version control combines procedures and tools to manage different


versions of configuration objects that are created during software
product development. To control versions, you can use Version
Control Register. In Version Control Register, you enter the details of
components, such as component identification numbers, their versions,
and dates of validity. It is advisable to release a baseline after a version
is released. Baseline is a specification or a product that is formally
reviewed and agreed upon. This serves as the basis for further
development. Baseline can be changed only through formal change
control procedures. A baseline consists of a set of SCIs that are
logically related to each other. Baselines are established when
subsequent changes to the SCIs need to be controlled. Version control
is essential so that everybody uses only the latest version. Any kind of
version mismatch might result in rework.

111

You might also like