Professional Documents
Culture Documents
SE Reprt 2023
SE Reprt 2023
SE Reprt 2023
GTTC was established in 1972 at Bangalore with the participation of the Karnataka State
Government, in collaboration with the Government of Denmark under the Bilateral
Development Co-operation Agreement. The excellent performance of GTTC Bangalore,
proactive Government of Karnataka which saw the need for expansion, got second unit of
GTTC started in 1992 with DANIDA assistance.
Today, the GTTC has acquired mastery in Mould and Die making technology and have
blossomed into an epitome of precision and quality in the development and manufacture of
sophisticated moulds, dies and tools.
Fully aware of the rapid advancement in technology the world over, the GTTC is
periodically adding new technologies to the existing set of advanced equipment like CAD /
CAM, CNC machines for tooling, Precision Components, Laser for Industries, Rapid
prototyping, vacuum casting etc.
Achievements:
Hydraulic system line replacement units like Shuttle Valves, Non-Return values
sampling valves for LCA Aircraft (Tejas).
Fuel system line replacement units like inward/outward relief valves, two piston
flap valves for LCA Aircraft (Tejas).
Aircraft mounted accessories gear box (AMAGB) for LCA Aircraft (Tejas).
GTTC-Siemens Center for Excellence is a state of art Robotics and Product design
engineering lab and development center in Mysuru.
The primary goal is to expose students to the practice of software development, that is,
programming at a reasonably large scale. While the principal way of learning to develop
software is to develop software, this course teaches how the program design principles of
the prerequisite courses scale to a large code base. Indeed, without relying on such
fundamental design principles, a large code base may quickly become prohibitively
complex and incomprehensible.
Students present their solutions to their peers (in class), and student panels act as
reviewers. Both presenting code and understanding such presentations are critical skills
for the modern software developer.
The Software Development Life Cycle (SDLC) is a structured process that enables the
production of high-quality, low-cost software, in the shortest possible production time. The
goal of the SDLC is to produce superior software that meets and exceeds all customer
expectations and demands. The SDLC defines and outlines a detailed plan with stages, or
phases, that each encompass their own process and deliverables. Adherence to the SDLC
enhances development speed and minimizes project risks and costs associated with
alternative methods of production.
In the 1950s and 1960s, computer science progressed rapidly. This swift evolution sparked
the beginnings of a production framework that eventually grew into the SDLC we know
today.
Prior to the 1950s, computing was not elaborate enough to necessitate a detailed approach
like the SDLC. As the complexity and scale of programming grew, the concept of structured
programming emerged. Over time, structured programming demanded more tactical
development models, thus sparking the beginnings of the SDLC.
It increases visibility on all aspects of the life cycle to all stakeholders involved in the
development process
The initial concept and creation of the SDLC only addressed security activities as a separate
and singular task, performed as part of the testing phase. The shortcomings of this after-
the-fact approach were the inevitably high number of vulnerabilities or bugs discovered
too late in the process, or in certain cases, not discovered at all. Today, it is understood that
security is critical to a successful SDLC, and that integrating security activities throughout
the SDLC helps create more reliable software. By incorporating security practices and
measures into the earlier phases of the SDLC, vulnerabilities are discovered and mitigated
earlier, thereby minimizing overall time involved, and reducing costly fixes later in the life
cycle.
This idea of ‘baking-in’ security provides a ‘Secure SDLC’- a concept widely recognized and
adopted in the software industry today. A secure SDLC is achieved by conducting security
assessments and practices during ALL phases of software development.
With modern application security testing tools, it is easy to integrate security throughout
the SDLC. In keeping with the ‘secure SDLC’ concept, it is vital that security assurance
activities such as penetration testing, threat modeling, code review, and architecture
analysis are an integral part of development efforts.
SDLC working
Planning phase
The planning phase encompasses all aspects of project and product management. This
typically includes resource allocation, capacity planning, project scheduling, cost
estimation, and provisioning.
During the planning phase, the development team collects input from stakeholders
involved in the project; customers, sales, internal and external experts, and developers.
This input is synthesized into a detailed definition of the requirements for creating the
Expectations are clearly defined during this stage as well; the team determines not only
what is desired in the software, but also what is NOT. The tangible deliverables produced
from this phase include project plans, estimated costs, projected schedules, and
procurement needs.
Coding phase
Building Phase
The building phase takes the code requirements determined earlier and uses those to begin
actually building the software.
Testing Phase
The phase entails the evaluation of the created software. The testing team evaluates the
developed product(s) in order to assess whether they meet the requirements specified in
the ‘planning’ phase.
Assessments entail the performance of functional testing: unit testing, code quality testing,
integration testing, system testing, security testing, performance testing and acceptance
testing, as well as nonfunctional testing. If a defect is identified, developers are notified.
Validated (actual) defects are resolved, and a new version of the software is produced.
The best method for ensuring that all tests are run regularly and reliably, is to implement
automated testing. Continuous integration tools assist with this need.
Release Phase
The release phase involves the team packaging, managing and deploying releases across
different environments.
Deploy Phase
In the deployment phase, the software is officially released into the production
environment.
Operate Phase
The operate phase entails the use of the software in the production environment.
In the monitor phase, various elements of the software are monitored. These could include
the overall system performance, user experience, new security vulnerabilities, an analysis
of bugs or errors in the system.
SDLC models/methodologies
Waterfall
Waterfall represents the oldest, simplest, and most structured methodology. Each phase
depends on the outcome of the previous phase, and all phases run sequentially. This model
provides discipline and gives a tangible output at the end of each phase. However, this
model doesn’t work well when flexibility is a requirement. There is little room for change
once a phase is deemed complete, as changes can affect the cost, delivery time, and quality
of the software.
Agile
The agile methodology produces ongoing release cycles, each featuring small, incremental
changes from the previous release. At each iteration, the product is tested. The agile model
helps teams identify and address small issues in projects before they evolve into more
significant problems. Teams can also engage business stakeholders and get their feedback
throughout the development process.
Lean
Eliminate waste
Amplify learning
Build integrity in
Build holistically
In the iterative process, each development cycle produces an incomplete but deployable
version of the software. The first iteration implements a small set of the software
requirements, and each subsequent version adds more requirements. The last iteration
contains the complete requirement set.
Spiral
In the spiral development model, the development process is driven by the unique risk
patterns of a project. The development team evaluates the project and determines which
elements of the other process models to incorporate.
V-Shaped
In the V-shaped model, verification phases and validation phases are run in parallel. Each
verification phase is associated with a validation phase, and the model is run in a V-shape,
where each phase of development has an associated phase of testing.
The most important best practice to implement into your SDLC is effective communication
across the entire team. The more alignment, the greater the chances for success.
Streamlined workflows
There are several pitfalls that threaten to negatively impact an SDLC implementation.
Perhaps the most problematic mistake is a failure to adequately account for and
accommodate customer and stakeholder needs in the process. This results in a
misunderstanding of system requirements, and inevitable disappointment with the end-
product.
Fifteen years after the Agile Manifesto was released, similar inefficiencies still plague
application security efforts in software development. Security is often seen as something
separate from—and external to—software development. It’s time to change the approach
to building secure software using the Agile methodology.
When building secure software in an Agile environment, it’s essential to focus on four
principles. These principles are patterned after those in the original Agile Manifesto: while
we value the things on the right, we must value the things on the left more.
The goal is to guide the development of new activities and make adjustments to existing
activities to make it natural and efficient to build security into an agile process. These four
principles are meant to inspire us to build secure software in an agile way:
Agile SDLC works a lot like a train. Each rotation of the train wheels represents a sprint.
During each sprint rotation, new needs are coming in from the backlog, rolling through the
planning, implementation, testing, evaluation, and deployment phases of the Agile software
development life cycle (SDLC).
Each Agile phase within each sprint rotation meets the software security tracks through a
series of security activities tailored to each phase. There’s no need to stop the train to think
about security. If a vulnerability is identified, treat it like any other bug and resolve it along
the way.