0% found this document useful (0 votes)
11 views6 pages

Lec1,2 Summary

Software engineering is a systematic approach to the design, development, testing, deployment, and maintenance of software, focusing on scalability, reliability, and maintainability. It involves various software development models and emphasizes the importance of managing complexity, reducing failures, and improving efficiency. Key activities include requirement analysis, system modeling, testing, and maintenance, while ethical considerations are crucial for professional conduct in the field.

Uploaded by

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

Lec1,2 Summary

Software engineering is a systematic approach to the design, development, testing, deployment, and maintenance of software, focusing on scalability, reliability, and maintainability. It involves various software development models and emphasizes the importance of managing complexity, reducing failures, and improving efficiency. Key activities include requirement analysis, system modeling, testing, and maintenance, while ethical considerations are crucial for professional conduct in the field.

Uploaded by

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

Software Engineering:

- It’s a systematic approach to design, develop, test, deploy and maintain a software Lec(1)
- It combines engineering principles with software developing
- Focuses on scalability, reliability and maintainability
Important of Software Engineering:
- Manages complexity in large-scaled systems
- Reduces system failures & Bugs
- Improves Efficiency & Security
- Enhances Team collaboration
Software Development Lifecycle (SDLC)
Requirement Analysis -> System Design -> Implementation -> Testing -> Deployment -> Maintenance & Evolution
Software Development Models:
- Waterfall Model
- Agile Methodology
- DevOps
- Spiral Model
Software Requirements:
- Users & System
- Functional
- non-Functional
Steps in Requirement Engineering:
1. Abstraction
2. Documentation
3. Validation
System Modelling:
Visual Representation of a system’s architecture, using UML (Unified Modeling Language)
Design Principles:
- Modularity -> Breaking into smaller parts
- Separation -> Each part has a responsibility
- Encapsulation -> Hiding unnecessary info/details
- Scalability -> System growth without any performance issues
Software Development & Implementation:
- Is at which an executable software is deployed, that involves:
1) Designing the system architecture
2) Writing code based on the requirements
3) Debugging to ensure reliability
Types of Testing: Quality Assurance Techniques:
- Unit Testing - Debugging
- Integration Testing - Code reviewing
- System Testing - Automated Testing
- User acceptance testing (UAT)
Importance of Maintenance:
- Fixing Bugs & Exploits
- Adapting new requirements
- Improving Performance
Security Concepts:
- Authorization & Authentication
- Secure Coding
- Data Encryption & Privacy
- Software Engineering is concerned with theories, methods and tools for professional software development
- All developed nations depends on software
Lec(2)
Software Costs:
- Software costs are often greater than the hardware cost, such as ERP (Enterprise Resource Planning), these systems include all
he tools and processes needed
- Software costs more to maintain that it is to develop
Software Products:
1) Generic Products:
- Stand-alone systems that are marketed/sold to anyone, Specifications of what the software should do is owned/decided by the
Software Dev
Example) PC
2) Customized Products:
- Software that are commissioned for a certain need/purpose, Specifications of what the software should do is owned/decided
by the customer
Examples) Embedded systems, traffic controls
Software: Computer Programs that are developed for either a customer or the general markets, they come associated
with documentations
Attributes of a Good Software:
- Delivers the required functionality & Performance to its user
Software Engineering: a discipline concerned about all aspects of software production
Fundamental Software Engineering Activities:
- Software Specification
- Software Development
- Software Validations & Evolution
Essential attributes of a Good Software:
- Maintainability
- Dependability & Security
- Efficiency
- Acceptability
General Issues that affect Most software:
- Heterogeneity: systems need to operate as distributed systems across networks that include different type of devices
- Business & Social Change: as society emerges quickly, we need to adapt and develop new updated software
- Security & Trust: Its essential that we can trust that software
Application Types:
- Stand-alone Applications: applications that run on a local computer, they include all the necessary functionality
- Interactive transaction-based: executed on a remote computer, access by users from their own PCs or terminal
- Embedded Control Systems: control and manage hardware devices
- Batch Processing systems: Designed to process data in large batches, they process large individual inputs to create outputs
- Entertainment Systems: primarily used by the user and their entertainment
- Modelling & Simulations Systems: used to model physical processes or situations
- Data Collections Systems: collect data from a certain environment using a set of sensors then it’s sent to be processed
- Systems of Systems: Systems that are composed of a number of other software systems
Software Engineering Fundamentals:
- Systems should be developed using a managed and understood development process
- Performance is important for all types of systems
- Understanding the system’s specifications & requirements
Web & Software:
- Web is running applications & organizations has been increasingly developing web-based systems and cloud computing
Software Engineering Ethics:
- Engineers must behave in an honest & ethical way, if they want to be respected as professionals
- Engineers should normally respect the confidentiality of their clients whether or not a formal contract was signed
- Engineers should not accept work that is out of their hands
- Engineers should ensure that the copyrights of the software and their clients are protected
- Engineers should not use their technical skills to misuses other people’s computer

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy