0.0 - Introduction To Software Engineering No Question in Exam
0.0 - Introduction To Software Engineering No Question in Exam
Engineering
Afrina Khatun
Lecturer
CSE, BRACU
Marks Distribution
• Attendance : 5
• Quiz: 10
• Mid Term Exam : 25
• Project and Assignments : 20
• Final Exam : 40
Reference Books
2 1. Ian Sommerville, "Software Engineering", Addison Wesley,
8th edition, 2007.
2. Roger S Pressman, Roger Pressman,"Software
Engineering: A Practitioner's Approach", McGraw-Hill, 7th
edition, 2010.
3. \\tsr\Fall-2019\CSE\AKH\CSE470\
Ground Rules
🠶 Makeup MID and FINAL will be conducted as
BRACU policy.
🠶 No makeup quiz.
🠶 Best (n-1) quiz will be considered.
🠶 Assignment/ Report Submission needs to be
submitted by given deadline.
🠶 Disciplinary action will be taken in case of
Cheating.
🠶 You need to maintain class behavior.
🠶 You are encouraged to ask questions in class.
🠶 You can reach me by phone, email etc. in case of
important (valid and logical) query.
🠶 Visit me in my consultation hour (available in tsr)
for any query, discussion or even for gossiping.
Goals of Software Engineering
🠶 To produce software that is absolutely correct.
🠶 To produce software with minimum effort.
🠶 To produce software at the lowest possible cost.
🠶 To produce software in the least possible time.
🠶 To produce software that is easily maintained and
modified.
🠶 To maximize the profitability of the software production
effort.
🠶 Programs
🠶 Source code
🠶 Data structures
🠶 Documents
🠶 Requirements and specification documents
🠶 Design documents
🠶 Test suites and test plans
Hardware Failure Curve
11
Software failures
12
What Is Good Software?
15
Software Myths
🠶 Management myths
🠶 We already have a book that’s full of
standards and procedures for building
software. Won’t that provide my people with
everything they need to know.
🠶 My people do have state-of-the-art software
development tools
🠶 If we get behind schedule, we can add more
programmers and catch up – Mongolian Horde
Concept
Software Myths…
🠶 Customer myths
🠶 A general statement of objectives is
sufficient to begin writing
programs…we can fill in the details
later.
🠶 Project requirement continually
change, but change can be easily
accommodated because software is
flexible.
Software Myths…
🠶 Developer myths
🠶 Once we write the program and get it to
work, our job is done.
🠶 Until I get the program “running” I really
have no way of assessing its quality.
🠶 The only deliverable for a successful project
is a working program.
Need Different Approaches for
Developing Large Software
Software Engineering:
The application of a systematic, disciplined,
quantifiable approach to the development,
operation, and maintenance of
Software
SE Framework Activities
🠶 Communication
🠶 Requirement collection
🠶 Planning
🠶 Specification
🠶 Modeling
🠶 Requirement Analysis
🠶 Design
🠶 Construction
🠶 Code generation
🠶 Testing
🠶 Deployment
🠶 Release
🠶22 Maintenance
Major Software
Production Tasks
🠶 Requirements analysis:
🠶 Analyze software system requirements in detail
🠶 Specification:
🠶 Develop a detailed specification for the software
🠶 Design:
🠶 Develop detailed design for the software data structures,
software architecture procedural detail, interfaces
🠶 Coding:
🠶 Transform design into one or more programming
language(s)
🠶 Testing:
🠶 Test internal operation of the system and externally visible
operations & performance
🠶 Release:
🠶 Package and deliver software to users
🠶 Maintenance:
The Essence of Practice
🠶 Polya suggests:
1. Understand the problem (communication and analysis).
2. Plan a solution (modeling and software design).
3. Carry out the plan (code generation).
4. Examine the result for accuracy (testing and quality
assurance).
24
Understand the Problem
🠶 Who has a stake in the solution to the problem?
That is, who are the stakeholders?
🠶 What are the unknowns? What data, functions, and
features are required to properly solve the
problem?
🠶 Can the problem be compartmentalized? Is it
possible to represent smaller problems that may be
easier to understand?
🠶 Can the problem be represented graphically? Can
an analysis model be created?
25
Plan the Solution
🠶 Have you seen similar problems before? Are
there patterns that are recognizable in a
potential solution? Is there existing software
that implements the data, functions, and
features that are required?
🠶 Has a similar problem been solved? If so, are
elements of the solution reusable?
🠶 Can subproblems be defined? If so, are
solutions readily apparent for the
subproblems?
🠶 Can you represent a solution in a manner that
leads to effective implementation? Can a
design model be created?
26
Carry Out the Plan
🠶 Does the solution conform to the plan? Is source
code traceable to the design model?
🠶 Is each component part of the solution provably
correct? Has the design and code been reviewed, or
better, have correctness proofs been applied to
algorithm?
27
Examine the Result
🠶 Is it possible to test each component part of the
solution? Has a reasonable testing strategy been
implemented?
🠶 Does the solution produce results that conform to
the data, functions, and features that are required?
Has the software been validated against all
stakeholder requirements?
28