You are on page 1of 16

MIRPUR UNIVERSITY OF SCIENCE AND TECHNOLOGY

DEPARTMENT OF SOFTWARE ENGINEERING


Software Construction & Development
(Lecture # 1)

(Lecturer)
Engr. Huma Sheraz

Date: November 7, 2022


Class learning Objectives

1. Understand the role of design and its major activities within the OO software
development process, with focus on the Unified process.

2. Develop Object-oriented design models and refine them to reflect


implementation details.

3. Evaluate different architectures for a medium size software.

4. Implement design model using an object-oriented programming language.

Software Construction & Development 3


Evaluation criteria
• Theory Marks (100)
• Mid term (30)
• Terminal (50)
• Quizes (10)
• Assignment (10)
• Lab Grading (50)
• Graded Lab (15)
• Lab viva (35)

Software Construction & Development 4


Reference Books

1. Clean Code: A handbook of Agile software Craftsmanship, Robert C,Martin,Prentice Hall,2008.

2. The Pragmatic Programmer:From Journeyman to Master,Andrew Hunt and Devid Thomas,Addison-


Wesley Professional,1999.

3. Working Effectively with Legacy Code,Michael C,Feathers,Pearson Education,Prentice-Hall,2004

4. Refactoring: Improving the design of existing code, Martin fowler,AddisonWesley Professional.1999.

5. Software Engineering,Sommerville,10th Edition, Pearson Inc.,2014

6. Software Engineering, A practitioner’s Approach,Pressman R.S.& Maxim B.R., 8th Edition,Mc Graw-
Hill,2015.

Software Construction & Development 5


Software Construction and Development

1. Software construction is a software engineering discipline.

2. It is the detailed creation of working meaningful software through a combination of


coding, verification, unit testing, integration testing, and debugging.

3. Construction uses the output from the design process to build software therein
described, and provides an output to testing.

Software Construction & Development 6


Software construction and development
1. Communication

2. Planning

3. Modeling

4. Construction

5. Deployment

Software Construction & Development 7


LECTURE CONTENTS

1. Software Construction fundamentals

2. Managing Construction

3. Practical Construction

4. Construction Technologies

Software Construction & Development 8


Software Construction and Development

1. Construction software will enhance the project, helping to plan, control and
coordinate the project from beginning to end.

2. Integrated construction software lessens costly delays and affords good


communication, enabling the field team to work to their maximum potential
and avoid dangerous or costly mistakes.

Software Construction & Development 9


Software Construction fundamentals

1. Minimizing complexity

2. Anticipating change

3. Constructing for verification

4. Reuse

Software Construction & Development 10


Minimizing complexity

1. The need to reduce complexity is mainly driven by limited ability of most people
to hold complex structures and information in their working memories.

2. Reduced complexity is achieved through emphasizing the creation of code that is


simple and readable rather than clever.

3. Minimizing complexity is accomplished through making use of standards, and


through numerous specific techniques in coding. It is also supported by
the construction-focused quality techniques.

Software Construction & Development 11


Anticipating Change

1. Anticipating change helps software engineers build extensible software, which means
they can enhance a software product without disrupting the underlying structure.

2. Research over 25 years showed that the cost of rework can be 10 to 100 times (5 to 10
times for smaller projects) more expensive than getting the requirements right the first
time.

Software Construction & Development 12


Constructing for Verification
1. Constructing for verification means building software in such a way that faults can be
ferreted out readily by the software engineers writing the software, as well as during
independent testing and operational activities.

2. Specific techniques that support constructing for verification include following coding
standards to support code reviews, unit testing, organizing code to support automated
testing, and avoid to use of complex or hard-to-understand terminologies.

Software Construction & Development 13


Reuse
1. Systematic reuse can enable significant software productivity, quality, and cost
improvements. Reuse has two closely related facts:_

2. Construction for reuse:-

3. Create reusable software assets.

4. Construction with reuse: -

5. Reuse software assets in the construction of a new solution.

Software Construction & Development 14


REFERENCES

• Software Engineering: A Practitioner’s Approach, Roger S. Pressman,


Bruce R. Maxim, 8th Ed, McGraw-Hill Education, 2015.
• Object-Oriented Analysis, Design and Implementation, Brahma
Dathan, Sarnath Ramnath, 2nd Ed, Universities Press, 2014

Software Construction & Development 15


THANKS

You might also like