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