0% found this document useful (0 votes)
30 views20 pages

Lecture 1

The document discusses key concepts in software engineering including objectives to familiarize students with fundamental concepts, techniques, processes, methods and tools of software engineering. It aims to help students develop skills to construct high quality, reliable software that is easy to understand, modify and maintain. Topics covered include software processes and models, analysis modeling, design, architecture, testing and quality assurance.

Uploaded by

尸 工 长 丹
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views20 pages

Lecture 1

The document discusses key concepts in software engineering including objectives to familiarize students with fundamental concepts, techniques, processes, methods and tools of software engineering. It aims to help students develop skills to construct high quality, reliable software that is easy to understand, modify and maintain. Topics covered include software processes and models, analysis modeling, design, architecture, testing and quality assurance.

Uploaded by

尸 工 长 丹
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 20

Software Engineering

Concepts
CSC 291
•By
Ali Sher Kashif
•Lecturer
•Department of CS
•CUI Sahiwal
[email protected]
To familiarize students to the fundamental concepts,
techniques, processes, methods and tools of Software
Engineering,

To help students to develop basic skills that will enable them to


construct software of high quality – software that is
Objective reliable, and that is reasonably easy to understand, modify and
maintain

To foster an understanding of why these skills are important


Topics Description
1 Introduction to the Course Lay out of the course and overall introduction of the discipline of Software
and Software Engineering Engineering and what we will cover in the course.

2 Software Processes & General introduction of processes and software engineer processes. Discussion
Software Process Models of different process models and their practical implications. These process
models include Waterfall model, evolutionary models and incremental models.

3 Software Process Models Software process models will be completed in the first lecture of this week.
(continued); Analysis Analysis phase of software engineering will be introduced.
modeling

4 Scenario based modeling Analysis modeling approaches (Object oriented analysis; Flow oriented
analysis).Topics will include requirement gathering using use case diagrams,
Activity diagrams, Swim lane diagrams.
5 Flow oriented modeling Data flow diagrams, Control flow diagrams, processing narratives

6 Behavioral modeling State diagrams, Sequence diagrams

7 Class Diagrams How to create initial domain model and how to develop conceptual class
diagram. Usefulness of domain model.

8 Software Design General Introduction of Object Oriented Design techniques and methods

9 Software Architecture Discussion of need of explicitly defining software architecture and its benefits.
What are important determinant of selection of certain architecture or
architecture style. Cost and benefit analysis of well know architectural style
10 Source Code Management What are coding standards how essential they are? Discussion of software
configuration management process

11 Software Testing What is software testing process, what methods, tools and techniques are use to
verify and validate the software. How software testing process is distributed
over entire life cycle of software development.

12 Software Maintenance What happen between software is deployed till the time it is retired. How
software evolution occurs and how it is managed.

13 Software Quality What is software quality, how can we ensure that software we develop is of
acceptable quality. Software quality assurances imperatives.

14 Software Business and Business of software is fast become a major GNP producer. Many rules and
Ethics regulation are there to guide software industry. How business and regulation
software engineering practices. (Special Reading)
Software can have huge impact in
any aspect of our society
Where can we
find software?
Conclusion

Software is almost everywhere!!!


Problems in software development

• Common issues
• The final software does not fulfill the needs of the customer
• Hard to extend and improve: if you want to add a functionality later its mission
impossible
• Bad documentation
• Bad quality: frequent errors, hard to use, ...
• More time and costs than expected
Cause: design errors in the software

Ariane 5 Flight
501
https://www.youtube.com/watch?v=5tJPXYA0Nec
Conclusion

• Programming is NOT enough!

It is not enough to do your best: you must Know what to do


and THEN do your best. -- W. Edwards Deming
A clever person solves a problem.
A wise person avoids it.
- Albert Einstein
Software Engineering

1) The application of a systematic, disciplined,


quantifiable approach to the development,
operation, and maintenance of software; that
is the application of engineering to software.
2) The study of approaches as in (1)
-- IEEE Definition (1993)
Software Engineering
Objective is to produce software that is:
• On time: is deliver at the established date.
• Reliable: does not crash.
• Complete: good documentation, fulfill customer needs.
Software
Process Models
Generic Process Framework
Communication

• Involves communication among the customer and other stake


holders; encompasses requirements gathering

Planning

• Establishes a plan for software engineering work; addresses


technical tasks, resources, work products, and work schedule

Modelling (Analyse, Design)

• Encompasses the creation of models to better under the


requirements and the design 16
Construction (Code, Test)
• Combines code generation and
testing to uncover errors

Deployment
• Involves delivery of software to
the customer for evaluation and
feedback
Modelling: Software
Requirements Analysis
• Helps software engineers to better understand the
problem they will work to solve
• Encompasses the set of tasks that lead to an
understanding of what the business impact of the
software will be, what the customer wants, and how
end-users will interact with the software
• Uses a combination of text and diagrams to depict
requirements for data, function, and behaviour
• Provides a relatively easy way to understand and review
requirements for correctness, completeness and consistency
18
Modelling: Software Design
• Brings together customer requirements, business needs, and
technical considerations to form the “blueprint” for a product
• Creates a model that provides detail about software data structures,
software architecture, interfaces, and components that are
necessary to implement the system
• Architectural design
• Represents the structure of data and program components that are required
to build the software
• Considers the architectural style, the structure and properties of
components that constitute the system, and interrelationships that occur
among all architectural components

19
User Interface Design
• Creates an effective communication medium
between a human and a computer
• Identifies interface objects and actions and
then creates a screen layout that forms the
basis for a user interface prototype

Component-level Design
• Defines the data structures, algorithms,
interface characteristics, and communication
mechanisms allocated to each software
component

You might also like