Podcast
Questions and Answers
Which factor primarily influences the software engineering methods and tools applied in a project?
Which factor primarily influences the software engineering methods and tools applied in a project?
- The type of application being developed. (correct)
- The hardware specifications of the server.
- The project manager’s personal preferences.
- The programming language used.
What is the primary economic concern that software engineering addresses regarding software costs?
What is the primary economic concern that software engineering addresses regarding software costs?
- Avoiding the purchase of CASE tools.
- Minimizing the initial hardware expenses.
- Reducing the costs associated with software maintenance. (correct)
- Lowering the salaries of software developers.
What distinguishes software engineering from computer science?
What distinguishes software engineering from computer science?
- Computer science is concerned with all aspects of computer-based systems, while software engineering is a small part.
- Computer science focuses on the theoretical foundations of computing, while software engineering addresses the practical aspects of developing useful software. (correct)
- Software engineering deals with theoretical computing principles, while computer science focuses on practical application.
- There is no distinction; the terms are interchangeable.
In the context of software engineering, what does software dependability encompass?
In the context of software engineering, what does software dependability encompass?
Why do many companies not use software engineering methods in their everyday work?
Why do many companies not use software engineering methods in their everyday work?
What is the significance of software evolution in the software process?
What is the significance of software evolution in the software process?
What is a key characteristic of 'generic' software products?
What is a key characteristic of 'generic' software products?
Which activity is part of the SDLC Analysis Phase?
Which activity is part of the SDLC Analysis Phase?
When does the SDLC Planning Phase typically occur?
When does the SDLC Planning Phase typically occur?
What tool is used to provide product and tool integration of SDLC activities?
What tool is used to provide product and tool integration of SDLC activities?
Which of the following is an example of a customized software product?
Which of the following is an example of a customized software product?
In the SDLC, what is the main focus of the Design Phase?
In the SDLC, what is the main focus of the Design Phase?
What is the major goal of the Software Validation stage in the software process?
What is the major goal of the Software Validation stage in the software process?
Which of the following best describes the relationship between software engineering and system engineering?
Which of the following best describes the relationship between software engineering and system engineering?
What is the primary focus of the SDLC Implementation Phase?
What is the primary focus of the SDLC Implementation Phase?
What is the major key challenge that software engineering faces today concerning heterogeneity?
What is the major key challenge that software engineering faces today concerning heterogeneity?
What does it mean when software must be 'acceptable'?
What does it mean when software must be 'acceptable'?
During which SDLC phase is the technical feasibility (can we build it?) of a project evaluated?
During which SDLC phase is the technical feasibility (can we build it?) of a project evaluated?
What is the role of a Project Manager in the SDLC Planning Phase?
What is the role of a Project Manager in the SDLC Planning Phase?
Which of the following is an example of a 'stand-alone application'?
Which of the following is an example of a 'stand-alone application'?
How does the SDLC Maintenance Phase differ from the other SDLC phases?
How does the SDLC Maintenance Phase differ from the other SDLC phases?
Which of the following attributes is essential for good software?
Which of the following attributes is essential for good software?
What is the primary purpose of 'requirements structuring' during the SDLC Analysis Phase?
What is the primary purpose of 'requirements structuring' during the SDLC Analysis Phase?
What type of application is an airline reservation system?
What type of application is an airline reservation system?
Which phase of the SDLC involves transforming logical specifications into technology-specific details?
Which phase of the SDLC involves transforming logical specifications into technology-specific details?
Computer-Aided Software Engineering (CASE) tools are designed to:
Computer-Aided Software Engineering (CASE) tools are designed to:
What is the primary goal of software engineering?
What is the primary goal of software engineering?
What is the purpose of Diagramming tools in CASE?
What is the purpose of Diagramming tools in CASE?
Which of the following is NOT a described phase in SDLC?
Which of the following is NOT a described phase in SDLC?
What are 'deliverables' in the context of SDLC?
What are 'deliverables' in the context of SDLC?
If a company requires a software system to manage and control its hardware devices, which application is being developed?
If a company requires a software system to manage and control its hardware devices, which application is being developed?
When can CASE tools be used?
When can CASE tools be used?
Which of the following is NOT a key challenges facing software engineering?
Which of the following is NOT a key challenges facing software engineering?
Roughly what percentage of software costs are development?
Roughly what percentage of software costs are development?
What is the purpose of 'report generators' in CASE tools?
What is the purpose of 'report generators' in CASE tools?
Which type of application is a Telecom company calculating monthly job charges?
Which type of application is a Telecom company calculating monthly job charges?
Is this statement true about essential attributes of good software: Software should make wasteful use of system resources such as memory and processor cycles
Is this statement true about essential attributes of good software: Software should make wasteful use of system resources such as memory and processor cycles
Flashcards
Software engineering
Software engineering
An engineering discipline concerned with all aspects of software production.
Software costs
Software costs
The cost of software often outweighs the cost of hardware in computer systems.
Fundamental software engineering activities
Fundamental software engineering activities
Software specification, development, validation, and evolution
Computer science
Computer science
Theory and fundamentals
Signup and view all the flashcards
Software engineering
Software engineering
Developing and delivering useful software
Signup and view all the flashcards
System engineering
System engineering
Concerned with all aspects of computer-based systems development including hardware, software and process engineering
Signup and view all the flashcards
Generic vs. Customized products
Generic vs. Customized products
Generic products are ready-made; customized products are commissioned.
Signup and view all the flashcards
Maintainability
Maintainability
Software should evolve to meet changing customer needs.
Signup and view all the flashcards
Dependability and security
Dependability and security
Software should be reliable, secure, and safe.
Signup and view all the flashcards
Efficiency
Efficiency
Software should not waste system resources.
Signup and view all the flashcards
Acceptability
Acceptability
Software should be understandable, usable, and compatible.
Signup and view all the flashcards
Software engineering
Software engineering
All aspects of software production, from specification to maintenance.
Signup and view all the flashcards
Software specification
Software specification
Customers and engineers define the software and its constraints.
Signup and view all the flashcards
Software development
Software development
Software is designed and programmed.
Signup and view all the flashcards
Software validation
Software validation
Software is checked to ensure it meets customer requirements.
Signup and view all the flashcards
Software evolution
Software evolution
Software is modified to reflect changing needs.
Signup and view all the flashcards
Software engineering methods depend on
Software engineering methods depend on
Consider type of application, requirements & team background.
Signup and view all the flashcards
Stand-alone applications
Stand-alone applications
Run on a local computer and do not connect to a network
Signup and view all the flashcards
Interactive transaction-based applications
Interactive transaction-based applications
Run on a remote computer and accessed by users from their own PCs.
Signup and view all the flashcards
Embedded control systems
Embedded control systems
Software systems controlling hardware devices.
Signup and view all the flashcards
Batch processing systems
Batch processing systems
Designed to process data in large amounts.
Signup and view all the flashcards
Entertainment system
Entertainment system
Primarily for personal use and entertainment.
Signup and view all the flashcards
Systems for modelling and simulation
Systems for modelling and simulation
Used to model physical processes or situations.
Signup and view all the flashcards
Data collection systems
Data collection systems
Collect data from their environment using sensors.
Signup and view all the flashcards
Systems of systems
Systems of systems
Composed of a number of other software systems.
Signup and view all the flashcards
SDLC
SDLC
traditional methodology for developing, maintaining, and replacing information systems
Signup and view all the flashcards
SDLC Planning Phase Why
SDLC Planning Phase Why
information system should be built.
Signup and view all the flashcards
SDLC Planning Phase How
SDLC Planning Phase How
project team will go building it
Signup and view all the flashcards
Project Initiation
Project Initiation
Business needs and how the system creates a business value.
Signup and view all the flashcards
Technical feasibility
Technical feasibility
Can we build it?
Signup and view all the flashcards
Economic feasibility
Economic feasibility
Will it provide business value?
Signup and view all the flashcards
Organizational feasibility
Organizational feasibility
If we build it, will it be used?
Signup and view all the flashcards
SDLC Analysis Phase Who What Where
SDLC Analysis Phase Who What Where
will use the system, will the system do, and when it will be used.
Signup and view all the flashcards
Requirements Determination
Requirements Determination
study of organization current procedures and the information systems used
Signup and view all the flashcards
SDLC Design Phase
SDLC Design Phase
Convert recommended solution to system specifications.
Signup and view all the flashcards
SDLC Implementation Phase
SDLC Implementation Phase
Code, validate, install and support the information system.
Signup and view all the flashcards
SDLC Maintenance Phase
SDLC Maintenance Phase
Systematically repair and improve the information system.
Signup and view all the flashcards
Computer-Aided Software Engineering (CASE)
Computer-Aided Software Engineering (CASE)
Support a wide variety of SDLC activities
Signup and view all the flashcards
Repository
Repository
Integrated and standard database
Signup and view all the flashcardsStudy Notes
Introduction to Software Engineering
- Software Engineering 10th Edition by Ian Sommerville can be used as a textbook
Course Outline
- Software Engineering Fundamentals
- Software Process Models
- Requirements Engineering
- System Modeling
- Architectural Design
- User Interface Design
- Agile Software Development
- Software Testing
Course Assessment
- Final Exam: 40 marks
- Midterm Exam: 25 marks
- Quizzes: 15 marks
- Project: 20 marks
- The total marks for this course is 100.
Computer Science Career Path
- Careers include Software Analyst (System Analyst), Software Designer, Software Developer (Programmer) and Quality Engineer (Software Tester)
- Many positions/titles exist in Cyber Security, Artificial Intelligence, etc.
Software Engineering
- The economies of all developed nations are dependent on software.
- More and more systems are software controlled.
- Software engineering is an engineering discipline that is concerned with all aspects of software production.
Software Costs
- Software costs often dominate computer system costs.
- With PCs, software costs are often greater than the hardware cost.
- Software costs more to maintain than it does to develop.
- Software engineering is concerned with cost-effective software development.
Software Project Failure
- Increasing system complexity and demands that change drive even more complex systems that require new capabilities.
- Failure to use software engineering methods leads to expensive, less reliable software.
FAQ
- Software constitutes computer programs and associated documentation.
- Fundamental software engineering activities include software specification, development, validation and evolution.
- Computer science focuses on theory and fundamentals; software engineering focuses on the practicalities of developing and delivering useful software.
- System engineering includes all aspects of computer-based systems development, including hardware, software, and process engineering.
- Key challenges facing software engineering are coping with increasing diversity and demands for reduced delivery times, and developing trustworthy software.
- Development costs comprise about 60% of software costs, and testing accounts for 40%. Custom software sees evolution costs that exceed development costs.
- No software engineering technique is the best, as different techniques are appropriate for different types of systems
Software Products
- Generic products are stand-alone systems marketed and sold to any customer.
- Examples of generic products are PC software such as graphics programs, project management tools; CAD software.
- Customized products are commissioned by specific customers to meet their own needs.
- Examples of customized products include embedded control systems, air traffic control software, and traffic monitoring systems.
Product Specification
- For generic products, the software developer owns the software specification and decides on software changes.
- The customer owns the software specification and decides on changes to customized software products.
Essential Attributes of Good Software
- Maintainability: Software evolves to meet changing customer needs.
- Dependability and security: Software should not cause physical or economic damage in the event of system failure, Malicious users should not be able to access or damage the system. Dependability incudes reliability, security and safety.
- Efficiency: Software should not make wasteful use of system resources
- Acceptability: Software must be understandable, usable and compatible with other systems.
Software Engineering Definition
- Software engineering is an engineering discipline concerned with all aspects of software production from the early stages of system specification through maintenance.
Importance of Software Engineering
- Society relies more and more on advanced software systems.
- Software engineering methods and techniques help produce reliable and trustworthy systems economically and quickly.
- It is usually cheaper in the long run to use software engineering methods.
- The majority of costs for most systems are the costs of changing the software after it has gone into use.
Software Process Activities
- Software specification is where customers and engineers define the software to be produced with constraints on its operation.
- Software development is where the software is designed and programmed.
- Software validation is where the software is checked to ensure that it is what the customer requires.
- Software evolution is where the software is modified to reflect changing customer and market requirements.
Software Engineering Diversity
- There are many different types of software system
- There is no universal set of software techniques that is applicable to the different types of software system.
- The software engineering methods and tools used depend on the type of application being developed, the requirements of the customer, and the background of the development team.
Application Types
- Stand-alone applications run on local computers with all necessary functionality without needing a network.
- Interactive transaction-based applications execute on a remote computer and are accessed by users from their own PCs.
- Embedded control systems control and manage hardware devices, and are probably more numerous than any other type of system.
- Batch processing systems refers to business systems designed to process data in large batches and create outputs.
- Entertainment systems refers to systems primarily for personal use intended to entertain the user.
- Systems for modelling and simulation refers to systems developed by scientists and engineers to model physical processes or situations.
- Data collection systems collect data from their environment using a set of sensors and send that data to other systems for processing.
- Systems of systems are composed of a number of other software systems.
Software Engineering Challenges
- Key challenges include Heterogeneity, delivery and trust:
- Heterogeneity concerns building software that can cope with heterogeneous platforms and execution environments.
- Delivery involves developing techniques for faster software delivery.
- Trust involves developing methods that demonstrate software can be trusted by its users.
Systems Development Life Cycle (SDLC)
- A traditional methodology for developing, maintaining, and replacing information systems.
- An orderly set of activities conducted and planned for each development project.
- Each phase has specific outcomes and deliverables that feed important information to other phases.
- SDLC phases include Planning, Analysis, Design, Implementation, Maintenance
- Outputs include software, documentation, and training for users.
SDLC Planning Phase
- Purpose: To determine why an information system should be built (need) and how the project team will build it (plan).
- Consists of two steps: Project Initiation and Project Management
- Project Initiation defines the business needs and how the system create a business value and includes a Feasibility Analysis (Technical, Economic, and Organizational)
- Project Management: Involves the project manager creating a work plan and staffing the project.
SDLC Analysis Phase
- Focuses on who will use the system, what the system will do, and where and when it will be used.
- Sub-phases include Requirements Determination and Requirements Structuring
- Requirements Determination consists of a careful study of organization current procedures and the information systems used to perform organizational tasks.
- Requirements Structuring focuses on relationships between requirements and eliminating redundancy
SDLC Design Phase
- Converts the recommended solution to system specifications
- Defines how the system will operate regarding hardware, software, network, user interface, forms, reports, programs, databases, and files.
- Includes Logical design by describing functional features independently of a specific computer platform
- Includes Physical design by transforming logical specifications to technology-specific details.
SDLC Implementation Phase
- Involves coding, validating, installing, and supporting the information system.
SDLC Maintenance Phase
- Systematically repairs and improves the information system
- Maintenance is not a separate phase but a repetition of other life cycle phases.
Computer-Aided Software Engineering (CASE)
- CASE tools support various SDLC activities.
- They assist in multiple phases of the SDLC: project identification and selection, initiation and planning, analysis, design, implementation, and maintenance.
- Product and tool integration are made possible via an integrated and standard database called a repository.
- Example products: Oracle Designer, Rational Rose
- Diagramming tools: Enable graphical representation of system process, data, and control structures.
- Computer display and report generators: Help prototype how systems "look and feel.”
- Analysis tools: Automatically check for incomplete, inconsistent, or incorrect specifications in diagrams, forms, and reports.
- Central repository: Enables integrated storage of specifications, diagrams, reports, and project management information.
- Documentation generators: Produce technical and user documentation in standard formats.
- Code generators: Enable the automatic generation of program and database definition code directly from design documents, diagrams, forms, and reports.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.