Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Assignment – 1

1. What are Software practices? Explain the phases in SDLC?


Software practices are specific things you do as part of the software development process
•That is, practices are activities that implement the process
Given below are the various phases:

 Requirement gathering and analysis


 Design
 Implementation or coding
 Testing
 Deployment
 Maintenance

#1) Requirement Gathering and Analysis

During this phase, all the relevant information is collected from the customer to develop a product
as per their expectation. Any ambiguities must be resolved in this phase only.

Business analyst and Project Manager set up a meeting with the customer to gather all the
information like what the customer wants to build, who will be the end-user, what is the purpose
of the product.
#2) Design

In this phase, the requirement gathered in the SRS document is used as an input and software
architecture that is used for implementing system development is derived.

#3) Implementation or Coding

Implementation/Coding starts once the developer gets the Design document. The Software design
is translated into source code. All the components of the software are implemented in this phase.

#4) Testing

Testing starts once the coding is complete and the modules are released for testing. In this phase, the
developed software is tested thoroughly and any defects found are assigned to developers to get them
fixed.
Retesting, regression testing is done until the point at which the software is as per the customer’s
expectation. Testers refer SRS document to make sure that the software is as per the customer’s
standard.

#5) Deployment

Once the product is tested, it is deployed in the production environment or first UAT (User
Acceptance testing) is done depending on the customer expectation.

In the case of UAT, a replica of the production environment is created and the customer along with
the developers does the testing. If the customer finds the application as expected, then sign off is
provided by the customer to go live.

#6) Maintenance

After the deployment of a product on the production environment, maintenance of the product i.e.
if any issue comes up and needs to be fixed or any enhancement is to be done is taken care by the
developers.

2. List different Software Engineering Tools and explain each of them?

1 Software Design Tools •Creating Software Designs


•Checking Software Designs.

2 Software Requirement Tools


These Tools are classified into two categories
1.Requirements modeling tools
2.Requirement traceability tools
•Requirements modeling tools
•These tools are used for analyzing, specifying, and validating software requirements
•Requirement traceability tools
•Since they are also relevant in other life cycle processes, they are presented separately from the requirements modeling tools.

3 Software Construction Tools


•These tools are concerned with
•Production of the program representation
•Translation of the program representation
•These tools are
•Program Editors
-Creation and Modification Of Programs
•Compiler and Code generators
-Non Interactive translators of source code
•Interpreters
-Provide Software execution through emulation
•Debugger
-Support Construction Process
4 Software Testing Tools
These tools are categorized as
•Test generators
-assist in the development of test cases.
•Test execution frameworks
-enable the execution of test cases in a controlled environment where the behavior of the object under test is observed.
•Test evaluation tools
•assessment of the results of test execution,
•helping to determine whether or not the observed behavior conforms to the expected behavior .
•Test management tools
•Managing software testing process.
•Performance analysis tools
•measuring and analyzing software performances

5 Software Maintenance Tools


These tools are categorized as
•Comprehension tools
-assist in the human comprehension of programs. Ex: Animators
•Reengineering tools
-examination and alteration of the subject software to reconstitute it in a new form
•Reverse engineering tools
-Assist the process by working backwards from an existing product

6 Software Configuration Management Tools


These tools are categorized as
•Tracking
•used in connection with the problem-tracking issues associated with a particular software product
•Version management
•involved in the management of multiple versions of a product
•Release tools
•used to manage the tasks of software release and build

7 Software Engineering Management Tools


These are categorized as
•Project Planning and Tracking
•used in software project effort measurement and cost estimation, as well as project scheduling
•Risk Management
•used in identifying, estimating, and monitoring risks.
•Measurement
•assist in performing the activities related to the software

8 Software Engineering Process Tools


These are categories as
•Process modeling tools
•These tools are used to model and investigate software engineering processes.
•Process management tools
•provide support for software engineering management.
•Process-centered software engineering environments
•incorporate information on the software life cycle processes and guide and monitor the user according to the defined process.
•Integrated CASE environments
•Integrated computer-aided software engineering tools or environments covering multiple phases of the software engineering life cycle belong

9 Software Quality Tools


These are categories as
•Review and Audit tools
•used to support reviews and audits
•Static Analysis tools
•used to analyze software artifacts, such as syntactic and semantic analyzers, as well as data, control flow, and dependency analyzers
10 Miscellaneous Tool Issues
This are categories as
•Tool Integration Techniques
•Used to make individual tools cooperate
•Integration techniques are applied
•Meta-tools
•Meta-tools generate other tools; compiler-compilers are the classic example.
•Tool Evaluation
•Evolve new tool
3. Explain different Software Engineering Methods?
Software Engineering Methods
•Methods usually provide anotationan dvocabulary,procedures for performin gidentifiable tasks,and guide lines for
checking both the process and the product
•These are categorized as
1 Heuristic methods
-dealing with informal approaches.
2 Formal methods
-dealing with mathematically based approaches.
3 Prototyping methods
-dealing with software engineering approaches based on various forms of prototyping

1.Heuristic Methods
•These are categories as
• Structured methods
-The system is built from a functional viewpoint, starting with a high-level view and progressively refining
this into a more detailed design.
• Data-oriented methods
the starting points are the data structures that a program manipulates rather than the function it
performs
• Object-oriented methods
The system is viewed as a collection of objects rather than functions
• Domain-specific methods
includes specialized methods for developing systems which involve real-time, safety, or security aspects

2 Formal Methods
These are categorized as
•Specification languages and notations
•This topic concerns the specification notation orl anguage used.Specification languages can be classified
asmodel-oriented,property-oriented,or behavior-oriented
•Refinement
•This topic deals with how the method refines(ortransforms) the specification into aform which is closer to the
desired final form of an excutable program.
•Verification/Proving properties:
•This topic covers the verification properties that are specific to the formal approach, including both the or
emproving and model checking
3 Prototyping Methods
•These are categorized as
•Prototyping styles
•The prototyping styles topic identifies the various approaches: throwaway, evolutionary, and executable specification
•Prototyping targets
•Examples of the targets of a prototyping method may be requirements, architectural design, or the user interface
•Prototyping evaluation techniques
•This topic covers the ways in which the results of a prototype exercise are used.s

4. What is SRS? Explain the requirements classification?


A software requirements specification (SRS) is a description of a software system to
be developed. The software requirements specification lays out functional and non-functional
requirements, and it may include a set of use cases that describe user interactions that the software
must provide.
Software requirements specification establishes the basis for an agreement between customers and contractors or
suppliers on how the software product should function (in a market-driven project, these roles may be played by the
marketing and development divisions).

 Software Requirements clasification


1. Business Requirements (BR)
 These are high-level business goals of the organization building the product, or the
customer who commissioned the project.
 These are usually provided as a single page of high-level bullets.
2. Market Requirements (MR)
 These drill down into BRs, but still are high-level. In addition to business goals, they
also outline market needs.
 These are usually provided as a prioritized bulleted list or table, and are usually less
than 5 pages long.
3. Functional Requirements (FR) – Use Cases
 These cover the functionality of the product in detail. Use cases are one of the best
ways of documenting functional requirements.
 Depending on the product being built, FRs can run several hundred pages.
4. Non-Functional Requirements (NFR)
 These are not related to the “functionality” of the product – but cover goals such as
Reliability, Scalability, Security, Integration, etc.
 Many projects make the mistake of not specifying these explicitly.

5. UI Requirements (UIR)
 User interface specs are not considered “requirements” in traditional requirements
management theory.
 Phooey! In my opinion, UI specs are indeed requirements (what else are they?) – and
in fact should be considered an integral part of requirements for any software that
has a UI.
6. What are functional and Nonfunctional requirements explain in detail?

Functional requirements relate to aproduct’s functionality


These cover the functionality of the product in detail.
•its capabilities
•Usability
•features,and operations
1.Functional requirements are clearly referenced as such i n Functional Requirements Documentation(FRD)
1.FRD provide samorein-depthelaboration of these requirements,which aregathered assoon as aproject kicksoff and up
until aproject begins production.
2.StatementofWork(SOW) outlines the high-level goals andr equirements of the desired product
Non-Functional Requirements (NFR)
 These are not related to the “functionality” of the product – but cover goals such as
Reliability, Scalability, Security, Integration, etc.
 Many projects make the mistake of not specifying these explicitly.

7. Briefly explain the benefits of Requirement Management tool?


#1 – Automatically generate documents. ...
#2 – Easily create simulations. ...
#3 - Automatically generate tests. ...
#4 - Integrate with development & test tools. ...
#5 – Easily manage changing requirements.
A requirements management tool supports the analyst in documenting project requirements,
versioning requirements, managing the requirement change process, tracing requirements through
the analysis and design process, and tracking the status of requirements.

Some examples of requirement management tools are:


Enterprise Architect, Requisite Pro, Telelogic, Caliber-RM
8. Write the selection criteria for choosing Requirement Management tool?
What ever you use,there are some main functions that any requirements tool has to fulfill.
•Serve as apoin to freference to document aproject’s requirements and implementation
•Serve as ablue print to help stakeholders understand whatto expect out oft he project
•By and large,there’sahugerange offeatu resoffe redin requirements management tools
•including modules for product management
•portfolio management
•release management
•custome rmanagement.

9. What is traceability? How do you generate traceability report using ReqView tool?
Traceability is the capacity to identify and trace the history, distribution, location and application of products, parts and
materials. ... In regards to suppliers and distributors, they must maintain records of the distribution of medical devices to
allow traceability
.Requirements traceability refers to the ability to describe and follow the life of a requirement, in both forwards and
backwards direction (i.e. from its origins, through its development and specification, to its subsequent deployment and use,
and through all periods of on-going refinement and iteration in any of these …
Traceability -Link requirements and other objects, browse requirements traceability matrix and analyze impact of changes.

10. How does enterprise architecture support business goals and strategy?
Enterprise Architecture helps business management achieve its strategic goals. It supports the company in creating
competitive advantage, reduces risks and enhances cost-efficiency and scalability. ... Enable lifecycle management of the
solution portfolio.

Enterprise Architecture should focus more on business requirements and strategy (and ultimately customers
needs and preferences) rather than on resources (including IT). The most important part of it should be how
to IMPACT the business strategy and model by current or future resources (most of them are now digital) rather
than how to ALIGN resources to meet business requirements and constraints.

Goal ofenterprise architechter


Enterprise architecture (EA) is the practice of analyzing, designing, planning and implementing enterprise analysis to
successfully exsecute on business strategies. ... Companies soon realized they would need a plan and
long-term strategy to support the rapid growth of technology and that remains true today
The enterprise architecture benefits include
-more efficient business operation with lower costs,
-more shared capabilities,
- lower management costs,
- more flexible workforce,
- more organisation,
- less duplication and redundancies and
improved business productivity

11. Why is the enterprise architecture so important? What stakeholder groups would be involved in the
Enterprise Architecture lifecycle?
The objective of enterprise architecture is to maximize across the venture the usually fragmented heritage
of procedures into an incorporated environment that is receptive to transform and encouraging of the
delivery of the business method
the biggest benefits of EAP include:
Allowing more open collaboration between IT and business units
Giving business the ability to prioritize investments
Making it easier to evaluate existing architecture against long-term goals
Establishing processes to evaluate and procure technology
Giving comprehensive view of IT architecture to all business units outside of IT
Providing a benchmarking framework to compare results against other
organizations or standards
8. What are the architectural domains of TOGAF?

The 4 unified regions of interests known as architectural domains are as below.

 Data architecture: the basic task of this domain is to describe the structure of an
organization’s logical and physical data possessions and the related data management resources.
 Application architecture: it is responsible for creating the blueprint of each application system
that needs to be organized. The communications connecting the request structure, and their
interactions with the interior dealing systems with the purposes of amalgamation.
 Business architecture: helps to find the definition for the term governance, business strategy,
and key business processes of the organization.
 Technical architecture: the alias name of this domain is technology architecture, used to
describe the software, hardware and network communications that help the consumption of
main interior claims. The architecture vision of TOGAF ensures that the proposed business plan
architecture delivers on the business value and capabilities.

9. How the TOGAF creates importance as a skeleton for enterprise architecture?

TOGAF has actually been developed via the collective initiatives of over 300 Architecture Forum
member firms from some of the world’s leading companies. Making use of TOGAF cause business style
that is consistent, mirrors the requirements of stakeholders, uses the optimum technique, as well as
offers due factor to consider both to present requirements and also the viewed future requirements
of the business. Establishing and also sustaining a venture design is a technically complicated
procedure which includes several stakeholders and also verdict procedures in the company. TOGAF
plays an important duty in standardizing the design growth process. TOGAF provides a best
technique skeleton for including a word and makes it possible for the association to construct
practicable and also monetary solutions which tackle their trade troubles and also anxieties.
10. What are the steps involved in Architecture Development Method (ADM)?
The 9 steps that help in establishing the architecture are as below

 Choose perspectives, apparatus and orientation figures.


 Manufacture baseline production structural design picture.
 Assemble intention manufacturing structural design information.
 Act upon crack breakdown.
 Label nominee roadmap workings.
 Determination of collision transversely the infrastructural background.
 Demeanor prescribed stakeholder analysis.
 Confirm the industry construction.
 Plan a structural design description article.
14. What is Version Control System? Explain types of
Version control system in detail?
Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.
Software source code as the files under version control, in reality any type of file on a computer can be placed under version control.
If you are a graphic or web designer and want to keep every version of an image or layout (which you certainly would).
Version Control System (VCS) allows you to:
revert files back to a previous state
revert the entire project back to a previous state
review changes made over time
see who last modified something that might be causing a problem
who introduced an issue and when
Using a VCS also means that if you screw things up or lose files
you can generally recover easily you get all this for very little overhead.

Type of version control


1 . Centralised Version Control System(VCS)

Major issue that people encounter is that they need to collaborate with developers on other systems.
To deal with this problem, Centralized Version Control Systems (CVCSs) were developed.
A single authoritative data source (repository)
Check-outs and check-ins are done with reference to this central repository
2 .Distributed Version Control Systems(VCS)
No single repository is authoritative
Data can be checked in and out from any repository
In a DVCS clients don’t just check out the latest snapshot of the files: they fully mirror the repository.
if any server dies, and these systems were collaborating via it
Client repositories can be copied back up to the server to restore it
Every checkout is really a full backup of all the data

15. What is GIT? Explain the advantages of using GIT?


What is GIT?
GIT is a distributed version control system and source
code management (SCM) system with an emphasis to
handle small and large projects with speed and
16. e ciency.
What are the advantages of using GIT?
a) Data redundancy and replication
b) High availability
c) Only one.git directory per repository
d) Superior disk utilization and network performance
e) Collaboration friendly
f)Any sort of projects can use GIT
16. What is “Staging Area” or “Index” in GIT? Explain them in detail
Before completing the commits, it can be formatted and reviewed
in an intermediate area known
as ‘Staging Area’ or ‘Index’.
17. What is the difference between ‘git remote’ and ‘git clone’?
18. git remote add’ just creates an entry in your git con g that speci es a name for a particular URL.
While, ‘git clone’ creates a new git repository by copying and existing one located at the URI
19. What is the difference between the ‘git diff ’and ‘git status’?
‘git di ’ is similar to ‘git status’, but it shows the di erences between
various commits and also
between the working directory and index
20. Why is it advisable to create an additional commit rather than amending an existing commit?
There are couple of reason
a) The amend operation will destroy the state that was previously saved in a commit. If it’s just
the commit message being changed then that’s not an issue. But if the contents are being
amended then chances of eliminating something important remains more.
b) Abusing “git commit- amend” can cause a small commit to grow and acquire unrelated
changes.
21. What is repository? Name a few Git repository hosting services?
A repository contains a directory named .git, where git
keeps all of its metadata for the repository. The
content of the .git directory are private to git.
Name a few Git repository hosting services
Pikacode
Visual Studio Online
GitHub
GitEnterprise
SourceForge.net
21. What is build tool? Explain the need for build tools? Give some examples
A "Build tool" is a catch-all term that refers to anything that is needed to get
a piece of software set up, but isn't needed after that. Different programming
communities have a wealth of different tools: some use stalwarts like make , some
use loose collections of .sh scripts, some use XML-based tools like Maven or Ant,
JSON-based tools like Grunt, or codebased tools like Gulp, Grunt or SBT. Each of
these tools does different things and has a different set of trade-offs associated
with them. Given all these different designs, and different things each tool does,
what are the common features that build tools provide that people want? How to
existing tools stack up against the things that people want build tools to do?

Use Cases for Build Tools


.

 Production Deployment
 Continuous Integration
 Developer Environments
Production Deployment:
where you want to set up the codebase once, stop changing it, and ship the finished
product. Whether you are shipping it to web servers or shipping it on CDs to install
on your customers' laptops.
Continuous Integration:
where you are running a relatively large test suite on a codebase, perhaps
once every several minute, with the code only changing between runs of the suite.
Developer Environments:
where you are interactively working and changing a codebase, several times a second,
and want it to execute many small actions (whether manually or via unit tests) in between
modifying the code

Common Features In Build Tools


 -Running ad-hoc commands
 -Knowing how to order the execution of commands based on dependencies
 -Caching command output if its inputs don't change
 - Parallelize different commands
 -Watch for file-changes and running commands based on them
 -Using external processes, including compilers
 -Being used by external processes
 -Allowing configuration, re-configuration, re-re-configuration
 -Download dependencie
Build Tools example
1.Analyzing Build Tools
 Shell Scripts
 Make
 Ant
 Maven
 Rake
 Grunt
 Gulp
 SBT
 Round Up

You might also like