Week 1 Flashcards
What is the meaning of acceptability
software is accepted by the users it is designed for. software is understandable, usable and compatible with users’ systems
what is heterogeneity
different things that work together and are compatible with each other to perform a specific task
eg can be different components
different programming languages
.
.
.
interactive transaction based apps
apps that are executed on a remote computerand are accessed by user on their own pc or terminal
allows users not only to interact with the system but also to perform transactions seamlessly within the application.
eg
e- commerce websites
embedded control systems
specialised type of computing systems built into a device to ensure it does one task really well and really quickly
Also manages hardware devices
eg
Anti-lock Braking System (ABS) in Cars:
specific task is to prevent the wheels from locking up during braking, thereby maintaining steering control.
batch processing systems
handle data in large batches
large number of inputs to create corresponding outputs
eg calculating cost of a business from large amount of data
or using an excel spreadsheet full of data and performing a task like average salary
stand alone app
a software program that runs locally on a user’s device without requiring an internet connection.
eg Text editor / notepad
Paint
.
.
.
Data collection system
system that collects data from their environment using sensors and sends data to other systems for processing
eg weather station
Fundamental principles of software engineering
Software specification and requirements - know what things should do
Performance - (do they work as intended)
Reusability - Reusing code where it is valid rather than writing new code
understood and manged development process - following a systematic and well-defined approach to building software.
cloud computing
Cloud computing is a way of using and accessing computing resources (like servers, storage, databases, networking, software) over the internet (the cloud) instead of your own computer’s hard drive or a local server.
Disadvantage- requires good internet connection
What are the main stages of software development life cycle
1) Feasibility - Can it even be done
2) Requirements- How should the finished software work ( according to user’s wishes)
3) Architecture and design - Designing how the end product should be done
4) Implementation - Coding the software
5) Testing - Does the software work as intended
6) Deployment and maintainability - Installing in the target environment and ensuring it functions properly over time through improvements, updates , patches
Describe the feasibility stage in detail
. Business need - Is it going to be used
. Technical feasibility - Given available resources is an end product possible
. Financial feasibility - can it be done using the available budget
. resources - Do you have the people or tools to achieve the task
. Time constraint - Can it be done in available time
IF these fail high risk to attempt development
what is analysis paralysis ( when it comes to the requirements)
unable to make progress on a project due to overthinking, excessive analysis ( pros and cons ) , or an overwhelming amount of available options.
What does it mean by stake holders
Anyone who has intrest or influence in the product being delivered
customers, developers, testers …
What are the 4 components of the 4+1 model
.Logical view
What are the main components of design
Thinking about the structures and algorithms within component
. consider the risk and values :
- Ensuring the appropriate amount of
effort is spent on each component
- Not designing everything as
some stuff can easily just be
programmed
- design focuses on parts that
are technically difficult
. The design fits the users intended end product so development can begin
What does SMART mean when it comes to requirements
Specific
Measurable
Assignable
Realistic
Time related
What is waterfall model
Model of a software development life cycle that allows you to move between phases ( can move back as well as forward) reflects the fact that a programmer may have to go back and improve based on new knowledge gained
A sequential model that involves linear steps where phases MUST BE COMPLETED BEFORE MOVING ON TO NEXT ONE :
What are disadvantages of waterfall model
The waterfall model (sequential ) model involves linear steps where phases MUST BE COMPLETED BEFORE MOVING ON TO NEXT ONE :
- the completion of phases before moving on to the next one means it may be costly to revisit a stage
- phases are therefore dependent with each other. revisiting a completed phase may disrupt flow and impact subsequent phases
eg : If after the deployment phase : the users give feedback and say 2FA (factor authentication) is required - this involves updating requirement phase and other subsequent phases like design must be updated to accommodate this (example of wicked problem)
TIME TO MARKET :
- as each phase must be completed before end product - LONG DEVELOPMENT TIME , the end product may lose out on its competive edge or become outdated
LOSS OF SYSTEM RELAVANCE:
- As we said before it is hard to make changes once a phase is complete - may lead to loss of relevance when it comes to evolution of needs and requirements in end product
what is a wicked problem
Stakeholders realise their requirements after seeing a partial solution
what is an agile methodology
methodologies that focus on the main concept that requirements will change and allow for updates by producing software in an ITERATIVE way
broken into a series of smaller time periods of focused work called sprints where the results of sprints are analysed and changes can be made where necessary
simple disadvantages of waterfall model from craig and dave
. user can only see end product during the final stages of the cycle
. Requirements MUST BE WELL UNDERSTOOD AND EXPLAINED - therefore not suitable for complex projects
. misunderstanding requirements likely to lead to a product that is hard to fix
.Downtime - may lead to periods of unavailability in product when being forced to make changes to a phase that has already been completed
advantages of the waterfall model (craig and dave)
.simple
. people have clear responsibilities at each stage
. easy to see if project is running on schedule
.
advantages of agile
FLEXIBLE AND EFFICIENT AS:
.Focuse on customers needs rather than a strict focus on documentaion
. allows for regular updates
. as there is close communication with customers customers get to point out flaws quicker leading to a better endproduct closer to their visions
. Strong collaboration between team leading to a better end product
.DONT HAVE TO RECREATE A WHOLE PROJECT IF MISTAKE NOT DETECTED IN EARLIER STAGES
disadvantages of agile
Minimal amount of documentation:
- harder to take onboard newcomers to project
- difficult to create final reports
-
Collobaration problems
- may be too time consuming if team is meeting regularly
- may be hard if team is widely distributed geographically
what is an incremental model
model where development is divided into small parts called increments
- updates are added and integrated into the system with each increment
- system is not delivered until end of project
advantages of incremental model
. Flexible as new requiremnets can be accomodated for
. As failure of project is high if project is long, increments are kept short (reducing failure)
. project always delivers something
disadvantages of incremental model
. hard to see what end of project is
. can easily deteriorate into code and fix
. difficult to plan costs and budgets