1.s/w prob Flashcards

1
Q

What is Software Engineering?

A

The term software engineering is the product of two words, software, and engineering
software:
1. The software is a collection of integrated programs.
2. Software is a prog or set of progs containing instructions that provide desired functionality.

Engineering:
Engineering is a process of designing or building something that serves a particular purpose and finds a cost effective solution to a problem

** process of designing, developing, testing And maintaining software. It is a systematic and disciplined approach to software development that aims to create high quality, reliable and maintainable software**

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Why is Software Engineering required?
5

A
  • To manage Large software
  • For more Scalability
  • Cost Management
  • To manage the dynamic nature of software
  • For better quality Management
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Need of Software Engineering
5

A

The necessity of software engineering appears because of a higher rate of progress in user requirements and the environment on which the program is working.

1. Huge Programming:
It is simpler to manufacture a wall than to a house or building, similarly, as the measure of programming become extensive engineering has to step to give it a scientific process.
2.Adaptability: If the software procedure were not based on scientific and engineering ideas, it would be simpler to re-create new software than to scale an existing one.
3.Cost:
As the hardware industry has demonstrated its skills and huge manufacturing has let down the cost of computer and electronic hardware. But the cost of programming remains high if the proper process is not adapted.
4. Dynamic Nature:
The continually growing and adapting nature of programming hugely depends upon the environment in which the client works. If the quality of the software is continually changing, new upgrades need to be done in the existing one.
5. Quality Management: Better procedure of software development provides a better and quality software product.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Characteristics of a good software engineer

A

The features that good software engineers should possess are as follows:

Exposure to systematic methods, i.e., familiarity with software engineering principles.

Good technical knowledge of the project range (Domain knowledge).

Good programming abilities.

Good communication skills. These skills comprise of oral, written, and interpersonal skills.

High motivation.

Sound knowledge of fundamentals of computer science.

Intelligence.

Ability to work in a team

Discipline, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Importance of Software Engineering

A

The importance of Software engineering is as follows:

Reduces complexity: Big software is always complicated and challenging to progress. Software engineering has a great solution to reduce the complication of any project. Software engineering divides big problems into various small issues. And then start solving each small issue one by one. All these small problems are solved independently to each other.
To minimize software cost: Software needs a lot of hardwork and software engineers are highly paid experts. A lot of manpower is required to develop software with a large number of codes. But in software engineering, programmers project everything and decrease all those things that are not needed. In turn, the cost for software productions becomes less as compared to any software that does not use software engineering method.
To decrease time: Anything that is not made according to the project always wastes time. And if you are making great software, then you may need to run many codes to get the definitive running code. This is a very time-consuming procedure, and if it is not well handled, then this can take a lot of time. So if you are making your software according to the software engineering method, then it will decrease a lot of time.
Handling big projects: Big projects are not done in a couple of days, and they need lots of patience, planning, and management. And to invest six and seven months of any company, it requires heaps of planning, direction, testing, and maintenance. No one can say that he has given four months of a company to the task, and the project is still in its first stage. Because the company has provided many resources to the plan and it should be completed. So to handle a big project without any problem, the company has to go for a software engineering method.
Reliable software: Software should be secure, means if you have delivered the software, then it should work for at least its given time or subscription. And if any bugs come in the software, the company is responsible for solving all these bugs. Because in software engineering, testing and maintenance are given, so there is no worry of its reliability.
Effectiveness: Effectiveness comes if anything has made according to the standards. Software standards are the big target of companies to make it more effective. So Software becomes more effective in the act with the help of software engineering.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Evolving nature of the software

A

software:
1. The software is a collection of integrated programs.
2. Software subsists of carefully-organized instructions and code written by developers on any of various particular computer languages.

Characteristics of software:
1.Functionality
2.Reliability
3.Usability
4.Efficiency
5.Maintainability
6.Portability

Changing nature of the software:
1. sys s/w:
Election of programmes which are returned to service other programmes some software processes are complex but determinate informative structures but other system application process largely indeterminate data
2. Application software
programmes that solve a specific business need
3. Engineering & scientific s/w
s/w Which are used to facilitate engineering & scientific functions and tasks
4. Embedded software
This resides within the system of the product and is used to implement and control features and functions for the end users and for the system itself
5. Product line software
Designed to provide specific capability for use by many different customers
6. Web application
client server computer programme which client runs on web browser
**Artificial intelligence s/w **
Makes use of non numerical algorithm to solve a complex problem that is not amenable to computation or straight forward analysis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Layered technology in software engineering

A

Software engineering is a fully layered technology to develop software we need to go from 1 layer to another all these layers are connected and each layer demands the fulfilment of the previous layer
layers:
1. A Quality focus
2. process
3. Method
4. tools

**1. Quality focus: **Continuous process of improvement of principles of software
- It provides integrity that means provides security to the s/w that only accessed by authorised persons
-focuses on usability and maintainability

2. Process: Foundation or base layer of SE
-It is the key that binds all the layers together which enables the development of software before the deadline or on time
- It defines framework that must be established for effective delivery of SE technology
- The software process covers all the activities actions and tasks required to be carried out for s/w development
Process activities:
a. Communication
b. Planning
c. modeling
d. construction
e. deployement

3. method: It has information of all tasks which includes
communication,
recruitment analysis,
design modelling,
program construction,
testing and
support

4. Tools: SE tools provide self operating system for processes and methods
- Tools are integrated which means information created by one tool can be used by another

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

s/w myths

A

https://www.codingninjas.com/studio/library/software-engineering-myths

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

s/w process

A

Software process is a set of activities and associated outcomes that produce software product
These are four key process activities which are common to all software processes:
1. Software specifications
Functionality of the software
and
Constraints(Restrictions) On its operations must be defined clearly
2. Software development
Software produce should meet all the requirements
3. software validation
Software must do what the customer wants to Validated
4. software evolution
It should evolve to meet changing client needs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

s/w crisis

A
  1. Quality
  2. delayed delivery
  3. cost
  4. size
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

SDLC

A

Software development life cycle Is a lifecycle model maps all the activities performed on software product from its Establishment to retirement
- It is pictorial and diagrammatic representation of software lifecycle
- It also captures the structure in which these methods are to be undertaken

need:
1. A development team must determine a suitable life cycle model for particular plan and then observe to it (Waterfall or other models)
2. Also, all the team members should have clear understanding among team representative and about when and what to do
3. so Entry and exit criteria for each phase is very important which is described by software lifecycle
4. Next phase can only begin when its stage entry criteria has been fulfilled
5. Without software lifecycle models, it would be tough for software managers to monitor the progress of the project

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SDLC

A

stages:
1. Recruitment analysis
2. Defining
3. designing
4. coding
5. testing
6. deployment
7. maintenance

1) Recruitment analysis \ Planning
Inputs from customers, Clients, Marketing team and stakeholders are taken
- Planning for quality assurance requirements and identifications of risk associated with the project is also done at this stage

  1. Defining requirements
    Once the requirement analysis is done, the next stage Is to make a document that contains software requirements and get them accepted by project stakeholders
    - This is accomplished through srs (software requirement specification ) document Which contains views of all the above members and Quality recruitment and potential risk factors
  2. designing the software
    With the reference of srs the software designers come up with the best architecture for the software
    - Hence, with the requirements defined in Srs, multiple designs for the product architecture are present in dds( Design document specification)
    - DDS It is assessed by market analyst and stakeholders
    - After analysing all the possible factors, the most practical and logical design is chosen for development
  3. Developing product
    Heres the Building of the product starts according to the Design mentioned in DDS
    - It is very important for the coders to follow the protocol set by the association in dds
    - According to the design selected from dds programming languages programming tools like compilers, debuggers, etc, are used
  4. Testing
    After the development of the Product , It is tested to ensure its smooth execution and find its flaws
    - Although minimal testing is conducted at every stage of Hdlc but in this stage probable flaws are fixed and retested
    - This also ensures the product reaches the quality requirements of srs
  5. Deployment and maintenance
    After detailed testing, the final product is released in phases as per the organisation strategy
    - It is tested in real industrial environment to make sure that it ensures smooth performance
    - Then the organisation sends the product out as a whole
    - It retrieves feedback from the customers Make any improvements if required(Maintainance requirement analysis)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

SDLC models

A

sdlc is a spiritual model used in Project management that defines stages Included in a project development from initial study to maintenance of completed application
- There are difference after development lifecycle models specify and design, which are followed during the software development phases, called as software development process models

  1. Waterfall model
  2. RAD model
  3. spiral model
  4. V Model
  5. Incremental Model.
  6. Agile model
  7. iterative model
  8. Big Bang model
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

1- waterfall model

A
  • Introduced by Winston Royce in 1970
  • All the phases in waterfall model will follow order. And do not overlap
  • The developer must complete every phase before starting the next phase
  • This phase is called as waterfall model because of its resemblance to a cascade of waterfalls in its diagrammatic representation
    phases(5):
    1. Recruitment analysis and specification
    2. design phase
    3. implementation and unit testing
    4. integration and system testing
    5. operation and maintenance phase.

Recruitment analysis and specification
In this phase the requirements of customers are taken and documented properly
- Here, both customer and software Developer work together to create a document with all functions, performance and interfacing requirements of the software
- A large document called SRS(software requirement specification)

Design phase
- In this phase requirements Gathered in Srs R transformed into suitable form, which permits them to further code in programming language
- It defines the overall detailed design of the product and is documented in sdd (software design document)

Implementation and unit testing
Here, the design is implemented and A software developer can follow sdd document
- And smaller modules are tested by writing some overhead code to cheque the interaction between these modules and flow of intermediate output

Integration and system testing
Here, the quality of the end product is determined by effectiveness of testing carried out
- The better output will lead to satisfied customers. Lower maintenance costs and accurate results
- The whole system is tested

Operation and maintenance phase
- Maintenance task is done by every user once the software has been delivered to the customer, installed and operated

When to use waterfall model
1) When the requirements are constant and not changed regularly
2) Project is short
3) resources are well prepared and available to use
4) Tools and technology used are constant and not changing

adv:
1. simple to Implement as resources are minimal
2. Requirements are simple and remain unchanged during the entire project
3. Start and end points of each says, is fixed. So it is easy to cover progress and avoids overlap
4. Release date for the completed product as well as Final cost can be determined before development

diadv:
1. Risk factor is high, so not suitable for more significant and complex problems
2. cannot accept changes in req during dev..t
3. tought to go back to prev phase
4. testing is dome in later stages.. It does not allow identifying the risks and challenges in the earlier phase

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

RAD
rapid aplication development

A

Linear sequential software development process model That has a concise development cycle Using element based construction approach
- RAD process enables the development team to create a completely functional system with a concise time.
- RAD is a concept that products can be developed faster and of higher quality through:
- Gathering requirements using workshop or focus groups
- Prototyping an early reiterative user testing of designs
- Reuse of software components
- Less formalities in reviews and other than team communication
steps
1. Business modelling
2. data modelling
3. process modelling
4. application modelling
5. testing and turnover

  1. Business modelling
    Information flow among business functions is defined by answering questions like, what drives the business process? What data is generated? Who generates it and so on
  2. Data modelling
    The data collected from business modelling is refined into a set of data objects that are needed to support the business
    The attributes are identified in relation between these objects are defined
  3. Process modelling
    The object information object defined in the data merging phase are transformed to achieve data flow necessary to implement business function
    - Processing descriptions are created for adding, modifying, deleting or retrieving a data object
  4. Application generation
    - Automated tools are used to facilitate construction ofs/w
  5. Testing and turnover
    Many of the programming components have already been tested since rad emphasis release This reduces the overall testing time, but the new part must be tested.

When to use rad model
1. When systems need to create projects in short span of two to three months
2. Requirements are well known
3. technical risks are limited
4. when budget is more, that is allowing to use automatic code generation tools

adv
1. Flexible for change
2. Each phase in rad gives highest priority functionality to the customer
3. Reduced development time
4. increases reusability of features

diasdv
1. Requires highly skilled designers
2. All applications are not compatible with rad
3. smaller projects cannot be developed with rad model
4. when technical risks are there this is not suitable
5. User involvement is required

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

spiral model

A

Proposed by Boehm
- It implements potential for rapid development of new versions of the software
- Using this Model the software is developed in series of incremental releases
- During early iterations, the additional release may be paper model or a prototype And later iterations, more and more complete versions of the engineered system is produced

phases:
1. Objective setting
2. Evaluation
3. Product development
4. Next phase planning

objective setting
Each phase of the spiral starts with
a. identification of purpose for the cycle
b. Various alternatives that are possible c. for achieving the targets and constraints that exist

risk Assessment and reduction
Here, the various alternatives are evaluated based on the goals and constraints
- Focus on evaluating risks Perception for the project

development and validation
- To develop strategies that involve uncertainties and risks

Planning
Finally, next step is planned. The project is reviewed and the choices made, whether to continue with a further period of the spiral

//https_www.javatpoint.com/?url=https%3A%2F%2Fwww.javatpoint.com%2Fsoftware-engineering-spiral-model

16
Q

incremental model

A

Process of software development where requirements are divided into multiple standalone modules of the software development cycle.
- In this model, each module goes through the requirements, design, implementation and testing phases

  1. req analysis(Requirements are identified by product analysis expertise and taken by the requirement analysis team)
  2. Design and development
  3. testing (It tests the performance of existing functions and various methods used to test behaviour of each task)
  4. implementation

when to use
1) Requirements are superior
2) project has lengthy development schedule
3) software teams are not well skilled Or trained
4) customer demands a quick release of the product

adv:
1. Errors are Easily recognise
2. Easier to test and debug
3. more flexible
4. simple to manage risks because it handled during iteration.
5. Client gets more important functionality earlier
disadv:
1. Need for good planning.
2. Total cost is high
3. well defined model interfaces are needed

17
Q

agile model

A

This model breaks the tasks into smaller iterations, or parts that do not involve in long term planning.
phases:
1. req gathering
2. design the req
3. construction
4. testing
5. deployment
6. feedback

18
Q

Prototype model

A

A prototype is developed
1. Recruitment gathering and analyst
2. quick decision
3. Build a prototype
4. user evaluation
5. prototype refinement
6. engineer product

19
Q

bigbang theory

A
  1. No specific Development steps or requirement analysis
20
Q

component s/w process

A

Component software in software engineering refers to a software development approach that emphasizes the use of pre-built software components or modules to build larger systems. These components are typically designed to be reusable, which can lead to faster development times, improved maintainability, and reduced costs.

Key aspects of component software include:

Reusability: Components are designed to be reusable in multiple contexts or applications, reducing the need to redevelop functionality from scratch.

Interoperability: Components are typically designed to work together seamlessly, often using standardized interfaces or protocols.

Encapsulation: Components encapsulate their functionality and data, providing a clear interface for other components to interact with them while hiding their internal workings.

Composability: Components can be easily combined or composed to create larger systems, allowing for flexible and modular system design.

Versioning and Lifecycle Management: Components often have their own versioning and lifecycle management, allowing for updates and improvements without affecting the entire system.

Component-based development is commonly used in modern software development, especially in areas such as web development, where frameworks and libraries provide reusable components for building applications.

21
Q

s/w project manager

A

Project is a group of tasks that need to comply to reach a clear result.
- It is a set of inputs and Outputs, which are required to achieve code
Software project management
- Procedure of managing allocating and timing resources to develop Computer software that fulfils requirements
- The client and developers need to know the length. and cost of the project

Needs of software project management:
1. Timer
2. cost
3. quality.

Roles of the project manager:
1) Leader
2) medium
3) mentor

22
Q

SRS

A

A good srs should contain:
1. Introduction
2. general description
3. functional requirements
4. interface requirements
5. performance requirements
6. design constraints
7. nonfunctional attributes
8. preliminary schedule and budget
9. appendices uses of srs document
10. faqs on srs format
11. conclusion.

  • Purpose of the document
  • scope of this document
  • overview.

general description:
Objective of users

Functional require
Operation of programme is fully included I calculations data processing etc

23
Q

Value of good srs.

A

steps:
1. Feasibility study (Technical operational economical feasibility)
2. requirements Elicitation (Getting information from the users like from interviews, surveys, focus groups, observations, prototyping)
3. recruitment specification
4. requirements for verification and validation
5. requirements management