What is Software Engineering?
Engineering discipline that concerned with every stage of software development and maintenance
What is a Software
A set of instructions to perform a specific task
Software Developer
A highly skilled professional with coding skills
Software Engineer
A highly skilled professional with coding skill mathematical skills
Software Engineering Activities
Specification
Development
Validation
Evolution
Types of software products
Generic
Bespoke
Software Engineering Diversity
Entertainment System
Transactional System
Simulations
Embedded Control System
Data collection system
Software Engineering team roles
FE/BE Engineer
QA Engineer
Tester
Tech Lead
Software Engineering Ethics
Confidentiality
Competency
Intellectual Property rights
Computer Misuse
Computer Science VS Software Engineering
Computer science is focusing on Theories and fundamentals.
SE is focusing on Practicalities
SDLC
SDLC is the process of Planning to implementation and operation.
It consists of documentation
- Planning Feasibility Study Areas
Technical
Operational
Legal
Schedule
Economical
- Gathering requirements
3.Design and Prototype
Architecture
UI
Programming
Platform
Communication
Security
4.Developing
5.Testing
6.Deployment
7.Maintainance and Operation
Uses of SDLC
Assure the quality of the product
Easy for developers to develop
Attributes of a Good Software
Maintainability
Efficiency
Acceptability
Dependability
Security
Types of requirements
Functional — It is required for the system’s function(They are must for operation)
FaceBookUser login for the system(Authentication)
Adding posts
Commenting
Liking the post
Non Functional — It is not required directly, but it is required circulatory.
Allow users to use either mouse or keyboard
Allow user to change focus
Providing feedback
User requirements and System requirements
User Requirements — The requirements that users need, in natural language
Functional : Account create, Account Login
Non Functional : Dark Mode, Loading speed, Ads, Animation
System Requirements — The requirements that need for the system’s function
Functional : Login data secure, Should be able to register a customer
Non Functional : Ability to change the mode
Software Process Model
Set of related activities to the software development
V Model
Waterfall
Spiral
Prototype
Iteractive
Incremental
Process Maturity Approach
Agile Approach : Focus on iterative development and reduction of overhead
Process Maturity Approach : Focused on improving process and project management