Overview of System Implementation - SAD - LECTURE
Overview of System Implementation - SAD - LECTURE
A. Software Development
B. Software Installation
• Software testing
– Types of testing
Functional testing : It is a type of software testing that validates the software systems against
the functional requirements. It is performed to check whether the application is working as per
the software’s functional requirements or not. Various types of functional testing are Unit testing,
Integration testing, System testing, Smoke testing, and so on.
Non-functional testing : It is a type of software testing that checks the application for
non-functional requirements like performance, scalability, portability, stress, etc. Various types of
non-functional testing are Performance testing, Stress testing, Usability Testing, and so on.
Maintenance testing : It is the process of changing, modifying, and updating the software to
keep up with the customer’s needs. It involves regression testing that verifies that recent
changes to the code have not adversely affected other previously working parts of the software.
Topic: System Implementation
Manual Testing
Manual testing is a technique to test the software that is carried out using the functions and
features of an application. In manual software testing, a tester carries out tests on the software
by following a set of predefined test cases
Automation Testing
Automated Testing is a technique where the Tester writes scripts on their own and uses suitable
Software or Automation Tool to test the software. It is an Automation Process of a Manual
Process. It allows for executing repetitive tasks without the intervention of a Manual Tester
Unit testing : It a level of the software testing process where individual units/components of a
software/system are tested. The purpose is to validate that each unit of the software performs
as designed.
Integration testing : It is a level of the software testing process where individual units are
combined and tested as a group. The purpose of this level of testing is to expose faults in the
interaction between integrated units.
System testing : It is a level of the software testing process where a complete, integrated
system/software is tested. The purpose of this test is to evaluate the system’s compliance with
the specified requirements.
Acceptance testing : It is a level of the software testing process where a system is tested for
acceptability. The purpose of this test is to evaluate the system’s compliance with the business
requirements and assess whether it is acceptable for delivery.
Topic: System Implementation
• Types of conversion
– Activities in data and system conversion
Data Conversion
System Conversion
System Conversion
Topic: System Implementation
• Training
Training
• Systems audit
– The system’s performance is compared to the
original design specifications to ensure the new
procedures improve productivity
• Periodic evaluation
– The system is evaluated from time to time to
ensure they still meet the goals and providing the
service as specified
– Users’ needs change over time
Documentation
Waterfall approach
The Waterfall approach is a linear method in which you can only proceed to the next stage when
you finish the previous one. Teams that use waterfall spend a reasonable amount of time on
product planning in the early stages of the project. They create an extensive overview of the
main goals and objectives and plan in detail what the working process will look like.
Topic: System Implementation
Agile approach
The Agile approach is based on teamwork, close collaboration between developers, business
stakeholders, and end customers, flexibility, and the ability to quickly respond to changes. The
basic building blocks of Agile development are iterations: Each of them includes such stages as
planning, design, development, etc.
Topic: System Implementation
Types of technical documentation
The main goal of effective documentation is to ensure that developers and other stakeholders
are working together to accomplish the project's objectives. Different software documentation
types exist to achieve this goal.
Product documentation
Process documentation
Product documentation describes the solution that is being developed and provides instructions
on how to interact with it. In general, product documentation includes requirements, tech
specifications, business logic, and manuals. There are two main types of product
documentation:
System documentation describes the system itself and its parts. It includes requirements
documents, design decisions, architecture descriptions, program source code, etc.
User documentation covers manuals mainly prepared for product end-users and system
administrators. It includes tutorials, user guides, troubleshooting manuals, installation
instructions, and so on.
Process documentation describes how teams work when developing software. It’s like a detailed
guidebook that lists the procedures team members follow during the SDLC, the tools they use,
and the rules they must adhere to. This documentation helps everyone understand how things
are done, ensures that the process is consistent, and makes it easier for new team members to
get up to speed.
Topic: System Implementation
Common examples of process-related documents are backlogs, roadmaps, coding and testing
standards, reports, meeting notes, release checklists, and even business correspondence.
product requirements,
UX design,
architecture,
source code,
QA activities, etc
Source code documentation comes in the form of comments that can range from single-line
notes explaining a particular operation to bigger, block explanations describing more complex
logic or data structures.
A test plan is a detailed document that outlines the objectives, resources, scope, and schedule
of intended testing activities in a project. It defines the roles and responsibilities of a QA team,
specifies what is going to be tested and what is not, describes the types of testing to be
performed (like unit, integration, and system testing), and the methodologies and tools to be
used.
A test case specification is a set of detailed actions to verify each feature or functionality of a
product. Usually, a QA team writes a separate specification document for each product unit. Test
case specifications are based on the approach outlined in the test plan. A good practice is to
simplify specification descriptions and avoid test case repetitions.
A test checklist is a list of tests that should be run at a particular time. It shows what tests are
completed and how many have failed. All points in the test checklists should be defined
correctly. Try to group test points in the checklists.
API documentation
Most products include APIs (Application Programming Interfaces) to enable data exchange with
other systems. API documentation contains a list of all product APIs and their specs. It
Topic: System Implementation
describes requests, responses, error messages, and other essential details, and informs
developers how to effectively interact with the system APIs.
End-user documentation
The documentation created for end users should explain in the simplest way possible how the
software can help solve their problems. Such user instructions can be provided in the printed
form, online, or offline on a device.
installation guides,
configuration manuals
maintenance procedures (including backup and restoration processes),
security protocols (guidelines on security measures, such as firewalls, antivirus software,
and access controls),
troubleshooting guides, and
disaster recovery plans.
Process Documentation
Process documentation covers all activities surrounding product development. The value of
keeping process documentation is to make development more organized and well-planned.
Backlogs
Backlogs are a fundamental component of Agile project management methodologies,
particularly in frameworks like Scrum. They provide a clear, actionable plan for the team as they
work on the product.
Standards include all coding, testing, and design standards that the team adheres to
throughout the project.
Plans, estimates, and schedules are usually created before the project starts and can be
altered as the product evolves.
A test strategy is a high-level document that describes the organization’s overall software
testing approach. It includes information about team structure and resource needs, as well as
what should be prioritized during testing. A test strategy is usually static, as it is defined for the
entire development scope.
A release checklist is a list of tasks and checks to be completed before software is released,
ensuring that nothing important is overlooked.
Working papers record engineers’ ideas and thoughts during project implementation. Working
papers usually contain some information about an engineer’s code, sketches, and ideas on how
Topic: System Implementation
to solve technical issues. While they shouldn’t be the major source of information, keeping track
of them allows for retrieving highly specific project details if needed.
Reports reflect how time and human resources were used during development. They can be
generated on a daily, weekly, or monthly basis.
Business analysts work closely with the customer to gather and define the business
requirements that the product must meet. They also act as a bridge between nontechnical
stakeholders and the technical team. They ensure that the technical documents are aligned with
business goals and are understandable to nontech stakeholders. In addition, BAs often
contribute to the creation of user documentation.
Market analysts collect information from end users to create user personas and user
scenarios. They also research the market and contribute to the requirement documents by
validating market fit and business objectives.
Project managers oversee the documentation process to ensure it aligns with project timelines
and goals. They are responsible for the majority of process documents and plans related to the
project.
Developers create source code documentation that describes the software elements. They
also explain how features are implemented, provide code samples, and clarify complex
technical processes that need to be documented.
UX designers are involved in creating UX/UI design documentation that includes interface
descriptions, prototypes, site maps, etc.
Technical writers are primarily responsible for drafting and editing the documentation. They
collaborate with technical experts to gather accurate details and present them in a user-friendly
format.